aol complete reference

55
AOL COMPLETE HAND BOOK: WHO COLUMNS WHO columns are used to track the information updated or inserted by the users against the tables. FND_STANDARD package is used for this purpose. FND_STANDARD.SET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (i.e. INSERT, UPDATE) performed. 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_login Use fnd_profile.VALUE ('USER_ID') for retrieving the user_id which will be used by created_by column. Creation date and last_update_date will be normally SYSDATE. last_updated_by is same as created_by. Use USERENV ('SESSIONID') for getting the last_update_login id. Key FND Tables in Oracle Application Here there are few key FND tables that we use in our AOL queries. FND_APPLICATION: Stores applications registered with Oracle Application Object Library. FND_APPLICATION_TL: Stores translated information about all the applications registered with Oracle Application Object Library. FND_APP_SERVERS: This table will track the servers used by the E-Business Suite system. FND_ATTACHED_DOCUMENTS: 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. FND_CURRENCIES: Stores information about currencies. FND_DATABASES: It tracks the databases employed by the eBusiness suite. This table stores information about the database that is not instance specific. FND_DATABASE_INSTANCES: Stores instance specific information. Every database has one or more instance. FND_DESCRIPTIVE_FLEXS: Stores setup information about descriptive flexfields. FND_DESCRIPTIVE_FLEXS_TL: Stores translated setup information about descriptive flexfields. FND_DOCUMENTS:

Upload: chaitanyamalireddy

Post on 09-Mar-2015

624 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: AOL Complete Reference

AOL COMPLETE HAND BOOK

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managersFND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS

Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters

2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documents

FND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDLTLONG_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_LONG_TEXT FDLTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDLTMEDIA_ID = FDMEDIA_ID AND FDATNAME = LONG_TEXT

2] To find all Short Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDSTSHORT_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_SHORT_TEXT FDSTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDSTMEDIA_ID = FDMEDIA_ID AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKG

It consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modificationQuery to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userSELECT fuuser_id fuuser_name frresponsibility_name frdescription faapplication_name

FROM fnd_user fu fnd_user_resp_groups g fnd_application_tl fa fnd_responsibility_tl fr

WHERE guser_id(+) = fuuser_id AND gresponsibility_application_id = faapplication_id AND faapplication_id = frapplication_id AND gresponsibility_id = frresponsibility_id AND fuuser_name =UPPER(User_Name)

Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayselect request_id parent_request_id fcptuser_concurrent_program_name Request_Name fcptuser_concurrent_program_name program_name DECODE(fcrphase_code CCompleted IIncactive PPending RRunning) phase DECODE(fcrstatus_code DCancelled UDisabled EError MNo Manager RNormal INormal CNormal HOn Hold WPaused BResuming PScheduled QStandby SSuspended XTerminated TTerminating AWaiting ZWaiting GWarningNA) status round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP fcrcompletion_text

From

appsfnd_concurrent_requests fcr

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 2: AOL Complete Reference

Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters

2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documents

FND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDLTLONG_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_LONG_TEXT FDLTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDLTMEDIA_ID = FDMEDIA_ID AND FDATNAME = LONG_TEXT

2] To find all Short Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDSTSHORT_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_SHORT_TEXT FDSTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDSTMEDIA_ID = FDMEDIA_ID AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKG

It consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modificationQuery to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userSELECT fuuser_id fuuser_name frresponsibility_name frdescription faapplication_name

FROM fnd_user fu fnd_user_resp_groups g fnd_application_tl fa fnd_responsibility_tl fr

WHERE guser_id(+) = fuuser_id AND gresponsibility_application_id = faapplication_id AND faapplication_id = frapplication_id AND gresponsibility_id = frresponsibility_id AND fuuser_name =UPPER(User_Name)

Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayselect request_id parent_request_id fcptuser_concurrent_program_name Request_Name fcptuser_concurrent_program_name program_name DECODE(fcrphase_code CCompleted IIncactive PPending RRunning) phase DECODE(fcrstatus_code DCancelled UDisabled EError MNo Manager RNormal INormal CNormal HOn Hold WPaused BResuming PScheduled QStandby SSuspended XTerminated TTerminating AWaiting ZWaiting GWarningNA) status round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP fcrcompletion_text

From

appsfnd_concurrent_requests fcr

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 3: AOL Complete Reference

2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documents

FND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDLTLONG_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_LONG_TEXT FDLTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDLTMEDIA_ID = FDMEDIA_ID AND FDATNAME = LONG_TEXT

2] To find all Short Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDSTSHORT_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_SHORT_TEXT FDSTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDSTMEDIA_ID = FDMEDIA_ID AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKG

It consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modificationQuery to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userSELECT fuuser_id fuuser_name frresponsibility_name frdescription faapplication_name

FROM fnd_user fu fnd_user_resp_groups g fnd_application_tl fa fnd_responsibility_tl fr

WHERE guser_id(+) = fuuser_id AND gresponsibility_application_id = faapplication_id AND faapplication_id = frapplication_id AND gresponsibility_id = frresponsibility_id AND fuuser_name =UPPER(User_Name)

Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayselect request_id parent_request_id fcptuser_concurrent_program_name Request_Name fcptuser_concurrent_program_name program_name DECODE(fcrphase_code CCompleted IIncactive PPending RRunning) phase DECODE(fcrstatus_code DCancelled UDisabled EError MNo Manager RNormal INormal CNormal HOn Hold WPaused BResuming PScheduled QStandby SSuspended XTerminated TTerminating AWaiting ZWaiting GWarningNA) status round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP fcrcompletion_text

From

appsfnd_concurrent_requests fcr

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 4: AOL Complete Reference

FND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDLTLONG_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_LONG_TEXT FDLTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDLTMEDIA_ID = FDMEDIA_ID AND FDATNAME = LONG_TEXT

2] To find all Short Text attachmentsSELECT FADSEQ_NUM Seq Number FDATUSER_NAME Data Type FDCTUSER_NAME Category User Name FADATTACHED_DOCUMENT_ID Attached Document Id FDETUSER_ENTITY_NAME User Entity FDDOCUMENT_ID Document Id FADENTITY_NAME Entity Name FDMEDIA_ID Media Id FDURL Url FDTTITLE Title FDSTSHORT_TEXT Attachment TextFROM FND_DOCUMENT_DATATYPES FDAT FND_DOCUMENT_ENTITIES_TL FDET FND_DOCUMENTS_TL FDT FND_DOCUMENTS FD FND_DOCUMENT_CATEGORIES_TL FDCT FND_ATTACHED_DOCUMENTS FAD FND_DOCUMENTS_SHORT_TEXT FDSTWHERE FDDOCUMENT_ID = FADDOCUMENT_ID AND FDTDOCUMENT_ID = FDDOCUMENT_ID AND FDCTCATEGORY_ID = FDCATEGORY_ID AND FDDATATYPE_ID = FDATDATATYPE_ID AND FADENTITY_NAME = FDETDATA_OBJECT_CODE AND FDSTMEDIA_ID = FDMEDIA_ID AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKG

It consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modificationQuery to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userSELECT fuuser_id fuuser_name frresponsibility_name frdescription faapplication_name

FROM fnd_user fu fnd_user_resp_groups g fnd_application_tl fa fnd_responsibility_tl fr

WHERE guser_id(+) = fuuser_id AND gresponsibility_application_id = faapplication_id AND faapplication_id = frapplication_id AND gresponsibility_id = frresponsibility_id AND fuuser_name =UPPER(User_Name)

Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayselect request_id parent_request_id fcptuser_concurrent_program_name Request_Name fcptuser_concurrent_program_name program_name DECODE(fcrphase_code CCompleted IIncactive PPending RRunning) phase DECODE(fcrstatus_code DCancelled UDisabled EError MNo Manager RNormal INormal CNormal HOn Hold WPaused BResuming PScheduled QStandby SSuspended XTerminated TTerminating AWaiting ZWaiting GWarningNA) status round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP fcrcompletion_text

From

appsfnd_concurrent_requests fcr

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 5: AOL Complete Reference

It consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modificationQuery to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userSELECT fuuser_id fuuser_name frresponsibility_name frdescription faapplication_name

FROM fnd_user fu fnd_user_resp_groups g fnd_application_tl fa fnd_responsibility_tl fr

WHERE guser_id(+) = fuuser_id AND gresponsibility_application_id = faapplication_id AND faapplication_id = frapplication_id AND gresponsibility_id = frresponsibility_id AND fuuser_name =UPPER(User_Name)

Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayselect request_id parent_request_id fcptuser_concurrent_program_name Request_Name fcptuser_concurrent_program_name program_name DECODE(fcrphase_code CCompleted IIncactive PPending RRunning) phase DECODE(fcrstatus_code DCancelled UDisabled EError MNo Manager RNormal INormal CNormal HOn Hold WPaused BResuming PScheduled QStandby SSuspended XTerminated TTerminating AWaiting ZWaiting GWarningNA) status round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP fcrcompletion_text

From

appsfnd_concurrent_requests fcr

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 6: AOL Complete Reference

appsfnd_concurrent_programs fcp appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1 -- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261 -- and fcptuser_concurrent_program_name = Payables Open Interface Import and fcrconcurrent_program_id = fcpconcurrent_program_id and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id and fcptlanguage = US and fcractual_start_date like sysdate -- and fcrphase_code = C -- and hold_flag = Y -- and fcrstatus_code = C

GROUP BY request_id parent_request_id fcptuser_concurrent_program_name fcrrequested_start_date fuUser_Name fcrargument_text fcractual_completion_date fcractual_start_date fcrphase_code fcrstatus_code fcrresubmit_interval fcrcompletion_text fcrresubmit_interval fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 7: AOL Complete Reference

view source

print1 CREATE TABLE testdept 2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 8: AOL Complete Reference

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 9: AOL Complete Reference

The Bad and Discard files will be created in concout file of the server

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 10: AOL Complete Reference

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values firsto Must create at least one dependent value for each independent value or else it wont allow you to

enter into that segment or fieldbull Table

o It use your own application tables as value sets for flex field segments and report parameters instead of the special values tables which Oracle Applications provides

o You can also use validation tables with other special arguments to make your segments depend on profile options or field values

o You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 11: AOL Complete Reference

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 12: AOL Complete Reference

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent programORCLE APPS CONCURRENT PROCESSThis article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 13: AOL Complete Reference

may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is runningbull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zone

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 14: AOL Complete Reference

bull No Manager No manager is defined to run the request Check with your system administrator Different execution methods of executabls

bull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Category Archives AOLWHO COLUMNS05 Sep

WHO COLUMNSWHO columns are used to track the information updated or inserted by the users against the tables FND_STANDARDpackage is used for this purpose FND_STANDARDSET_WHO Procedure is used to update the WHO columns in a Table when a DML operation s (ie INSERT UPDATE) performed 1) Created by 2) Creation date 3) Last _updated_by 4) last_update_date 5) last_update_loginbull Use fnd_profileVALUE (USER_ID) for retrieving the user_id which will be used by created_by column bull Creation date and last_update_date will be normally SYSDATE bull last_updated_by is same as created_by bull Use USERENV (SESSIONID) for getting the last_update_login id Leave a comment Posted by Dibyajyoti Koch on September 5 2010 in AOL Tags FND_STANDARD FND_STANDARDSET_WHO Oracle AOL Oracle Apps WHO COLUMNSKey FND Tables in Oracle Application04 Sep

Key FND Tables in Oracle ApplicationHere there are few key FND tables that we use in our AOL queriesFND_APPLICATION Stores applications registered with Oracle Application Object LibraryFND_APPLICATION_TL Stores translated information about all the applications registered with Oracle Application Object LibraryFND_APP_SERVERS This table will track the servers used by the E-Business Suite systemFND_ATTACHED_DOCUMENTS Stores information relating a document to an application entityFND_CONCURRENT_PROCESSES Stores information about concurrent managers

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 15: AOL Complete Reference

FND_CONCURRENT_PROCESSORS Stores information about immediate (subroutine) concurrent program librariesFND_CONCURRENT_PROGRAMS Stores information about concurrent programs Each row includes a name and description of the concurrent programFND_CONCURRENT_PROGRAMS_TL Stores translated information about concurrent programs in each of the installed languagesFND_CONCURRENT_QUEUES Stores information about concurrent managersFND_CONCURRENT_QUEUE_SIZE Stores information about the number of requests a concurrent manager can process at once according to its work shiftFND_CONCURRENT_REQUESTS Stores information about individual concurrent requestsFND_CONCURRENT_REQUEST_CLASS Stores information about concurrent request typesFND_CONC_REQ_OUTPUTS This table stores output files created by Concurrent RequestFND_CURRENCIES Stores information about currenciesFND_DATABASES It tracks the databases employed by the eBusiness suite This table stores information about the database that is not instance specificFND_DATABASE_INSTANCES Stores instance specific information Every database has one or more instanceFND_DESCRIPTIVE_FLEXS Stores setup information about descriptive flexfieldsFND_DESCRIPTIVE_FLEXS_TL Stores translated setup information about descriptive flexfieldsFND_DOCUMENTS Stores language-independent information about a documentFND_EXECUTABLES Stores information about concurrent program executablesFND_FLEX_VALUES Stores valid values for key and descriptive flexfield segmentsFND_FLEX_VALUE_SETS Stores information about the value sets used by both key and descriptive flexfieldsFND_LANGUAGES Stores information regarding languages and dialectsFND_MENUS It lists the menus that appear in the Navigate Window as determined by the System Administrator when defining responsibilities for function securityFND_MENUS_TL Stores translated information about the menus in FND_MENUSFND_MENU_ENTRIES Stores information about individual entries in the menus in FND_MENUSFND_PROFILE_OPTIONS Stores information about user profile optionsFND_REQUEST_GROUPS Stores information about report security groupsFND_REQUEST_SETS Stores information about report setsFND_RESPONSIBILITY Stores information about responsibilities Each row includes the name and description of the responsibility the application it belongs to and values that identify the main menu and the first form that it usesFND_RESPONSIBILITY_TL Stores translated information about responsibilitiesFND_RESP_FUNCTIONS

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 16: AOL Complete Reference

Stores security exclusion rules for function security menus Security exclusion rules are lists of functions and menus inaccessible to a particular responsibilityFND_SECURITY_GROUPS Stores information about security groups used to partition data in a Service Bureau architectureFND_SEQUENCES Stores information about the registered sequences in your applicationsFND_TABLES Stores information about the registered tables in your applicationsFND_TERRITORIES Stores information for countries alternatively known as territoriesFND_USER Stores information about application usersFND_VIEWS Stores information about the registered views in your applications 1 Comment Posted by Dibyajyoti Koch on September 4 2010 in AOL Apps Tables Tags FND Tables Oracle AOL Oracle AppsAttachment in Oracle Application02 Sep

Attachment in Oracle ApplicationWhat is attachment in oracle applicationThe attachments feature in oracle application enables users to link unstructured data such as images word-processing documents spreadsheets or text to their application data For example users can link images to items or video to operations as operation instructionsWhere to find an attachmentThere is an attachment icon in the oracle application toolbar that indicates whether the Attachments feature is enabled in a form block When the button is dimmed the Attachment feature is not available When the Attachment feature is enabled in a form block the icon becomes a solid paper clip The icon switches to a paper clip holding a paper when the Attachment feature is enabled in a form lock and the current record has at least one attachmentAttachment typesAn attached document can be1] Short TextText stored in the database containing less than 2000 characters2] Long TextText stored in the database containing 2000 characters or more3] ImageAn image that Oracle Forms can display including bmp cals jfif jpeg gif pcd pcx pict ras and tif4] OLE ObjectAn OLE Object that requires other OLE server applications to view such as Microsoft Word or Microsoft Excel5] Web PageA URL reference to a web page which you can view with your web browserTables InvolvedFor Importing Attachments in oracle application one has to populate following tables1 FND_DOCUMENTS2 FND_ATTACHED_DOCUMENTS3 FND_DOCUMENTS_TL4 FND_DOCUMENT_DATATYPES5 FND_DOCUMENT_CATEGORIES6 FND_DOCUMENTS_LONG_TEXT (Long text type attachment)7 FND_DOCUMENTS_SHORT_TEXT (Short text type attachment)8 FND_DOCUMENTS_LONG_RAW9 FND_LOBS (File type attachments)FND_DOCUMENTSFND_DOCUMENTS stores language-independent information about a document For example each row contains a

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 17: AOL Complete Reference

document identifier a category identifier the method of security used for the document (SECURITY_TYPE where 1=Organization2=Set of Books 3=Business unit4=None) the period in which the document is active and a flag to indicate whether or not the document can be shared outside of the security type (PUBLISH_FLAG)Other specifications in this table include datatype (DATATYPE_ID where 1=short text2=long text 3=image 4=OLEobject) image type and storage type (STORAGE_TYPE where 1=stored in the database 2=stored in the file system)The document can be referenced by many application entities and changed only in the define document form (USAGE_TYPE=S) it can be used as a fill-in-the-blanks document where each time you use a template you make a copy of it (USAGE_TYPE=T) or it can be used only one time (USAGE_TYPE=O)Images and OLE Objects cannot be used as templatesFND_ATTACHED_DOCUMENTSFND_ATTACHED_DOCUMENTS stores information relating a document to an application entity For example a record may link a document to a sales order or an item Each row contains foreign keys to FND_DOCUMENTS and FND_DOCUMENT_ENTITIES There is also a flag to indicate whether or not an attachment was created automaticallyFND_DOCUMENTS_TLFND_DOCUMENTS_TL stores translated information about the documents in FND_DOCUMENTS Each row includes the document identifier the language the row is translated to the description of the document the file in which the image is stored and an identifier (MEDIA_ID) of the sub-table in which the document is saved (FND_DOCUMENTS_SHORT_TEXT FND_DOCUMENTS_LONG_TEXT or FND_DOCUMENTS_LONG_RAW)FND_DOCUMENT_DATATYPESFND_DOCUMENT_DATATYPES stores the document datatypes that are supported Initial values are short text longtext image and OLE Object (DATATYPE_ID=1 2 3 or 4) Customers can add datatypes to handle documents storedoutside of Oracle and use non-native Forms applications to viewedit their documents The table uses a duplicate record model for handling multi-lingual needs That is for each category there will be one record with the same CATEGORY_ID and CATEGORY_NAME for each languageFND_DOCUMENT_CATEGORIESFND_DOCUMENT_CATEGORIES stores information about the categories in which documents are classified For example documents may be considered Bill of Material Comments WIP Job Comments etc Document categoriesare used to provide a measure of security on documents Each form that enables the attachment feature lists which categories of documents can be viewed in the form This table uses a duplicate record model for handling multi-lingual needsFND_DOCUMENTS_LONG_TEXTFND_DOCUMENTS_LONG_TEXT stores information about long text documentsFND_DOCUMENTS_SHORT_TEXTFND_DOCUMENTS_SHORT_TEXT stores information about short text documentsFND_DOCUMENTS_LONG_RAWFND_DOCUMENTS_LONG_RAW stores images and OLE Objects such as Word Documents and Excel spreadsheets in the databaseFND_DOCUMENT_ENTITIESFND_DOCUMENT_ENTITIES lists each entity to which attachments can be linked For example attachments can be linked to Items Sales Orders etc Since the table uses a duplicate record model for handling multi-lingual needs for each document entity there will be one record with the same DOCUMENT_ENTITY_ID and DATA_OBJECT_CODEfor each languageQueries1] To find all Long Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 18: AOL Complete Reference

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDLTLONG_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_LONG_TEXT FDLT

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDLTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = LONG_TEXT

2] To find all Short Text attachments

view source

print01 SELECT02 FADSEQ_NUM Seq Number

03 FDATUSER_NAME Data Type 04 FDCTUSER_NAME Category User Name

05 FADATTACHED_DOCUMENT_ID Attached Document Id06 FDETUSER_ENTITY_NAME User Entity

07 FDDOCUMENT_ID Document Id08 FADENTITY_NAME Entity Name

09 FDMEDIA_ID Media Id10 FDURL Url

11 FDTTITLE Title 12 FDSTSHORT_TEXT Attachment Text

13 FROM14 FND_DOCUMENT_DATATYPES FDAT

15 FND_DOCUMENT_ENTITIES_TL FDET16 FND_DOCUMENTS_TL FDT

17 FND_DOCUMENTS FD 18 FND_DOCUMENT_CATEGORIES_TL FDCT

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 19: AOL Complete Reference

19 FND_ATTACHED_DOCUMENTS FAD20 FND_DOCUMENTS_SHORT_TEXT FDST

21 WHERE22 FDDOCUMENT_ID = FADDOCUMENT_ID

23 AND FDTDOCUMENT_ID = FDDOCUMENT_ID24 AND FDCTCATEGORY_ID = FDCATEGORY_ID

25 AND FDDATATYPE_ID = FDATDATATYPE_ID 26 AND FADENTITY_NAME = FDETDATA_OBJECT_CODE

27 AND FDSTMEDIA_ID = FDMEDIA_ID28 AND FDATNAME = SHORT_TEXT

Attachment upload through APIAttachments can also be uploaded through an oracle provided API called FND_ATTACHED_DOCUMENTS_PKGIt consist of three procedures1) Insert Row2) Update Row3) Lock RowNames of these procedures are self explanatory insert row is used to insert a new row for attachment data update row is used to update existing row for a particular row and Lock Row is used to lock a existing row for further modification Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Tags Attachment attachment API FND_ATTACHED_DOCUMENTS FND_ATTACHED_DOCUMENTS_PKG FND_DOCUMENTS FND_DOCUMENTS_LONG_TEXT Oracle AOL Oracle Apps Oracle SysAdminQuery to fetch Responsibilities attached to a User02 Sep Query to fetch Responsibilities attached to a userThe below query will fetch the responsibilities assigned to a particular userview source

print01 SELECT02 fuuser_id

03 fuuser_name 04 frresponsibility_name

05 frdescription 06 faapplication_name

07 08 FROM fnd_user fu

09 fnd_user_resp_groups g10 fnd_application_tl fa

11 fnd_responsibility_tl fr

12

13 WHERE14 guser_id(+) = fuuser_id

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 20: AOL Complete Reference

15 AND gresponsibility_application_id = faapplication_id16 AND faapplication_id = frapplication_id

17 AND gresponsibility_id = frresponsibility_id18 AND fuuser_name =UPPER(User_Name) Leave a comment Posted by Dibyajyoti Koch on September 2 2010 in AOL Script Tags Oracle AOL Oracle Apps Oracle SysAdmin Responsibilities attached to a UserScript to get all the Concurrent Program Request details18 Aug Script to get all the Concurrent Program Request detailsBelow is the script to get the Concurrent Program Request details by Various Users in a Particular Dayview source

printselect request_id

parent_request_id fcptuser_concurrent_program_name Request_Name

fcptuser_concurrent_program_name program_name DECODE(fcrphase_code

CCompleted IIncactive

PPending RRunning) phase

DECODE(fcrstatus_code DCancelled

UDisabled EError

MNo Manager RNormal

INormal CNormal

HOn Hold WPaused

BResuming PScheduled

QStandby SSuspended

XTerminated TTerminating

AWaiting ZWaiting

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 21: AOL Complete Reference

GWarningNA) status

round((fcractual_completion_date - fcractual_start_date)3) 1440 as Run_Time

round(avg(round(to_number(actual_start_date - fcrrequested_start_date)3) 1440)2) wait_time fuUser_Name Requestor

fcrargument_text parameters to_char (fcrrequested_start_date MMDD HH24miSS) requested_start

to_char(actual_start_date MMDDYY HH24miSS) ACT_START to_char(actual_completion_date MMDDYY HH24miSS) ACT_COMP

fcrcompletion_text

From

appsfnd_concurrent_requests fcr appsfnd_concurrent_programs fcp

appsfnd_concurrent_programs_tl fcpt appsfnd_user fu

Where 1=1

-- and fuuser_name = DJKOCH -- and fcrrequest_id = 1565261

-- and fcptuser_concurrent_program_name = Payables Open Interface Import

and fcrconcurrent_program_id = fcpconcurrent_program_id

and fcpconcurrent_program_id = fcptconcurrent_program_id and fcrprogram_application_id = fcpapplication_id

and fcpapplication_id = fcptapplication_id and fcrrequested_by = fuuser_id

and fcptlanguage = US and fcractual_start_date like sysdate

-- and fcrphase_code = C -- and hold_flag = Y

-- and fcrstatus_code = C

GROUP BY request_id

parent_request_id fcptuser_concurrent_program_name

fcrrequested_start_date fuUser_Name

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 22: AOL Complete Reference

fcrargument_text fcractual_completion_date

fcractual_start_date fcrphase_code

fcrstatus_code fcrresubmit_interval

fcrcompletion_text fcrresubmit_interval

fcrresubmit_interval_unit_code fcrdescription

Order by 1 desc Leave a comment Posted by Dibyajyoti Koch on August 18 2010 in AOL Script Tags Concurrent Program Concurrent Request Oracle AOL ScriptRegistering SQLLoader as a Concurrent Program12 Aug

Registering SQLLoader as a Concurrent ProgramThe following steps will describe the process to register a SQLLoader program as a Concurrent Program in Oracle AppsStep 1]Create the SQLLoader Control and Data file and place them in Server(ex $CUSTOM_TOPbin) Create or check the interface table structures in the backend

Control file testctl

Data file testdat

view source

print1 CREATE TABLE testdept

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 23: AOL Complete Reference

2 (deptno NUMBER(2) NOT NULL

3 dname VARCHAR2(14)4 loc VARCHAR2(13))

Step 2]Go to Application Developer gt Concurrent gt Executables Define a Concurrent Program Executable Choose the Execution Method as SQLLoader and give the Execution File Name as the name of the SQLLoader control file Saveyour work

Step 3]Go to Application Developer gt Concurrent gt Program Define the Concurrent Program Attach the executable defined above

Step 4]Go to parameters of the concurrent program Create a parameter to take the server path of the data file You can also place the default value

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 24: AOL Complete Reference

Step 5]Attach the Concurrent program to a Responsibility through a Request GroupStep 6]Go to that Responsibility and Run the Concurrent Program If successful check the output file that have all data uploading informationNumber to load ALLNumber to skip 0Errors allowed 50Bind array 64 rows maximum of 256000 bytesContinuation none specifiedPath used ConventionalTable TESTDEPT loaded from every logical recordInsert option in effect for this table INSERT Column Name Position Len Term Encl Datatypemdashmdashmdashmdashmdashmdashmdashmdashmdashmdash mdashmdashmdash- mdashndash mdash- mdash- mdashmdashmdashmdashmdashmdashmdashDEPTNO FIRST O() CHARACTER DNAME NEXT O() CHARACTER LOC NEXT O() CHARACTER Table TESTDEPT 7 Rows successfully loaded 0 Rows not loaded due to data errors 0 Rows not loaded because all WHEN clauses were failed 0 Rows not loaded because all fields were nullSpace allocated for bind array49536 bytes(64 rows)Read buffer bytes 1048576Total logical records skipped 0Total logical records read 7Total logical records rejected 0Total logical records discarded 0Run began on Thu Aug 12 094155 2010Run ended on Thu Aug 12 094156 2010Elapsed time was 00000011CPU time was 00000001Step 7]Check in the backend whether the tables got updated or not

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 25: AOL Complete Reference

The Bad and Discard files will be created in concout file of the server 1 Comment Posted by Dibyajyoti Koch on August 12 2010 in AOL SQLLoader Tags Concurrent Program Oracle Registering SQLLoader SQLLOADERKFF vs DFF A Comparison02 Jul

KFF vs DFF A ComparisonA flexfield in Oracle Application is a field made up of subndashfields or segments They are basically used to implement code structure or to capture additional information There are two types of flexfields key flexfields and descriptive flexfields A key flexfield appears on your form as a normal text field with an appropriate prompt while a descriptive flexfield appears on your form as a twondashcharacterndashwide text field with square brackets [ ] as its promptHere is a brief comparison between KFF and DFF

KFF vs DFF Leave a comment Posted by Dibyajyoti Koch on July 2 2010 in AOL Tags descriptive flexfields flexfields segments key flexfields Oracle AOL Oracle SysAdminAOL Valueset A Beginners Guide01 Jul

AOL Valueset ndash A Beginners GuideWhat is value set in Oracle application AOL

bull Value set is primarily a container for your values you define your value set such that it can control the types of values that are allowed into the value set (either predefined or nonvalidated) You can specify the format of your values

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 26: AOL Complete Reference

bull Oracle Application Object Library uses value sets as important components of key flexfields descriptive flexfields and Standard Request Submission (value sets for report parameters for your reports that use the Standard Request Submission feature)

When to defining Values for Value Setsbull After you register your Flexfields amp report parameters if you are using independent or dependent value

sets you can enter values into each corresponding value set using the Segment Values formbull Values for the Value Sets we are defining will be kept in the Oracle Application Object Library tables

How many Format Types the value set havebull Charbull Datebull DateTimebull Numberbull Standard Datebull Standard Date Timebull Time

You should take a note that Date and Date Time value set formats will be obsolete now and are provided for backward compatibility only For new value sets use the format types Standard Date and Standard Date TimeWhat is Security type in value set

bull By Security Rules window we can define value security rules for ranges of flexfield and report parameter values

There are two levels where you must activate Security the one at value set level and other at individual segment or parameter level You make Flex field Value Security available for your value set by choosing Hierarchical Security orNon-Hierarchical Security for the Security Type When you make security available for a value set all segments and report parameters that use that value set can use security You then enable security for a particular segment or parameter

bull Choose Hierarchical Security If you want Security on a parent value to Cascade down to its child value or else you can choose Non-Hierarchical Security

How many Character Formatting Options have for value set bull Numbers Only (0 ndash 9)

o We cannot prevent users from entering a value that contains the radix charactero Cannot be used in Translatable Independent and Translatable Dependent value sets

bull Uppercase Only(A-Z) o Here also we cannot use in Translatable Independent and Translatable Dependent value sets

bull Right justify and Zero fill Numbers(001) o If you have selected Numbers Only (0-9) flag then it wont allow you to affect this flago We are recommended to use this in Accounting Flex fields

bull Minimum and Maximum Value Range o Your Minimummaximum value may not be longer than the maximum size you specify for this

value seto Once you specify a range of values you cannot define a new valid value that falls outside this

rangeo The Minimum Value and Maximum Value fields can therefore allow you to create a value set with

a validation type of NoneHow many validation Type does value set haveThere are several validation types that affect the way users enter and use segment or parameter values

bull None (not validated at all) o Allow users to enter any valueo Only Format Validations will be done

bull Independent o Provides a predefined list of valueso Independent values are stored in an Oracle Application Object Library table

bull Dependent o Same like Independent Value Set except the List of Values shown to you will depends on which

the Independent value you have selected in the Prior Segmento Must define your independent value set before you define the dependent value set that depends on

ito Advisable to create your independent values first

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 27: AOL Complete Reference

o Must create at least one dependent value for each independent value or else it wont allow you to enter into that segment or field

bull Table o It use your own application tables as value sets for flex field segments and report parameters

instead of the special values tables which Oracle Applications provideso You can also use validation tables with other special arguments to make your segments depend on

profile options or field valueso You can use any existing application table view or synonym as a validation tableo If we are using non registered table for your value set then we have to Create the necessary grants

and synonyms to APPS Schemao The value column and the defined ID column in the table must return a unique row for a given

value or IDo If the Hidden Id column is provided the value passed to the report will be Hidden and not the Value

columno Similarly when you specify $FLEX$Value_Set_Name your flex field segment or report

parameter defaults to always use the hidden ID column to compare with your WHERE clause o We can use Special BIND variable such as $PROFILES$Option_name

$FLEX$Value_set_name blockfield in the WHERE clausebull Special

o Special validation value sets allow you to call key flex field user exits to validate a flex field segment or report parameter using a flex field within a flex field mechanism You can call flex fieldroutines and use a complete flex field as the value passed by this value set

bull Pair o Pair validation value set allows user to pass a range of concatenated Flex field segments as

parameters to a reportbull Translatable Independent amp Translatable Dependent

o These value sets are similar to Independent and Dependent value sets except that translated values can be displayed to the user Translatable Independent and Translatable Dependent value sets allowyou to use hidden values and displayed (translated) values in your value sets In this way your userscan see a value in their preferred languages yet the values will be validated against a hidden value that is not translated

o We can convert the Independent value set to a Translatable Independent value set or a Dependent value set to a Translatable Dependent value set These are the only types of conversions allowed

Which Oracle table store Value sets and underline informationbull FND_FLEX_VALUE_HIERARCHIESbull FND_FLEX_VALUE_SETSbull FND_ID_FLEX_SEGMENTSbull FND_FLEX_VALUE_NORM_HIERARCHYbull FND_FLEX_HIERARCHIESbull FND_FLEX_VALUEbull FND_FLEX_VALIDATION_EVENTSbull FND_FLEX_VALUE_RULE_LINESbull FND_FLEX_VALUE_RULEbull FND_FLEX_VALUE_RULE_USAGEbull FND_RESPONSIBLITYbull FND_TABLESbull FND_FLEX_VALIDATION_TABLES

Any method to upload flexfield valueYes FNDLOAD is utility which can be used for moving value set across different environmentDo we have any restriction on value setYes here are some listed one

bull Table Validated Value Sets o We cannot use table-validated id value sets for any accounting flexfield or any other key flexfieldso We cannot use $FLEX$ $PROFILES$ in table name value and id of table validated value setso We cannot use DISTINCT clause in any of the column fields or in the WHERE clause of a table

validate value seto In an id value set the value can be non-unique but id should be unique In a non-id value set value

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 28: AOL Complete Reference

should be uniqueo We can only use columns selected for the table-validated value set must be of type NUMBER

DATE or VARCHAR2o Support for SQL expression in columns of Table Validated value sets will be obsolete in future

releasebull Translatable Independent and Translatable Dependent Valuesets

o The Numbers Only and Uppercase Only option cannot be usedo Must have Char format type

bull SpecialPair valuesets o SpecialPair value sets are user-exit value sets PLSQL APIs will not be able to validate them

Lets now define a simple value set in R12Step 1 Go to Application Developer and select menu ValidationSetCreate a value set name as COUNTRY_LIST which will contain a list of countries Make it an independent value setFormat type is CHAR Save the work

Step 2 Go to Application Developer and select menu ValidationValuesThe below window will appear Put the Search Name as COUNTRY_LIST and click Find

Step 3 Enter the country details in this window Save the work

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 29: AOL Complete Reference

Now the value set is ready to be used in any concurrent program 3 Comments Posted by Dibyajyoti Koch on July 1 2010 in AOL Tags FNDLOAD Oracle AOL Oracle Application Object Library Oracle SysAdmin SpecialPair valuesets Table Validated Value Sets Translatable Dependent Translatable Independent validation TypeOracle Apps Concurrent ProcessingAn Introduction23 Jun This article gives an introduction of Concurrent Processing in Oracle ApplicationConcurrent ProgramAn instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableAn executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageAn execution method can be a PLSQL Stored Procedure an Oracle Tool such as Oracle Reports or SQLPlus a spawned process or an operating system host languageConcurrent RequestA request to run a concurrent program as a concurrent processConcurrent ProcessAn instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerA program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsThere are many concurrent managers each monitoring the flow within each apps areaBut there are 3 MASTER CONCURRENT MANAGERS1 Internal Concurrent Manager (ICM) This is the one which monitors all other CMs2 Standard Manager (SM) This takes care of report running and batch jobs3 Conflict Resolution Manager (CRM) checks concurrent program definitions for incompatibility checksWe cannot delete a concurrent managerhellip but we can disable ithellip but its not recommendedConcurrent QueueList of concurrent requests awaiting to be processed by a concurrent managerPhases and Statuses through which a concurrent request runsA concurrent request proceeds through three possibly four life cycle stages or phases

bull Pending Request is waiting to be runbull Running Request is running

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 30: AOL Complete Reference

bull Completed Request has finishedbull Inactive Request cannot be run

Within each phase a requests condition or status may change Below appears a listing of each phase and the various states that a concurrent request can go through Concurrent Request Phase and Status Phase PENDING

bull Normal Request is waiting for the next available managerbull Standby Program to run request is incompatible with other program(s) currently runningbull Scheduled Request is scheduled to start at a future time or datebull Waiting A child request is waiting for its Parent request to mark it ready to run

PhaseRUNNING bull Normal Request is running normallybull Paused Parent request pauses for all its child requests to complete bull Resuming All requests submitted by the same parent request have completed running The Parent

request is waiting to be restartedbull Terminating Running request is terminated by selecting Terminate in the Status field of the Request

Details zonePhaseCOMPLETED

bull Normal Request completes normallybull Error Request failed to complete successfullybull Warning Request completes with warnings For example a report is generated successfully but fails to

printbull Cancelled Pending or Inactive request is cancelled by selecting Cancel in the Status field of the Request

Details zonebull Terminated Running request is terminated by selecting Terminate in the Status field of the Request

Details zone PhaseINACTIVE

bull Disabled Program to run request is not enabled Contact your system administratorbull On Hold Pending request is placed on hold by selecting Hold in the Status field of the Request Details

zonebull No Manager No manager is defined to run the request Check with your system administrator

Different execution methods of executablsbull FlexRpt The execution file is written using the FlexReport APIbull FlexSql The execution file is written using the FlexSql APIbull Host The execution file is a host scriptbull Oracle Reports The execution file is an Oracle Reports filebull PLSQL Stored Procedure The execution file is a stored procedurebull SQLLoader The execution file is a SQL scriptbull SQLPlus The execution file is a SQLPlus scriptbull SQLReport The execution file is a SQLReport scriptbull Spawned The execution file is a C or ProC programbull Immediate The execution file is a program written to run as a subroutine of the concurrent

manager Output formats of a concurrent program

bull HTMLbull PDFbull TEXTbull PS (Post Script)bull PCL(HPs Printer Control Language)

Leave a comment Posted by Dibyajyoti Koch on June 23 2010 in AOL Tags Concurrent Manager concurrent process Concurrent Processing Concurrent Program Concurrent Queue Conflict Resolution Manager executabls execution methods Oracle AOL Oracle Apps Oracle Reports Oracle SysAdmin

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 31: AOL Complete Reference

Complete forms deployment process in Oracle Apps22 Jun Form Name CustomersfmbDeployed Application Custom AR ApplicationResponsibility US Receivables Super UserStep 1 COPYING FILES FROM THE SERVERa) Copy TEMPLATEfmb file from $AU_TOPformsUS folder to a local directory Also download APPSTANDfmb file and place it in DDevSuiteHome_1formsb) Copy All PLSQL Libraries from $AU_TOPresourceUS folder (one time only) Download all the pll and plx files to DDevSuiteHome_1formsStep 2 DESIGN THE FROM IN ORACLE FORMS BUILDERa) Remove the Defaults gtOpen Oracle Forms Builder gtOpen the form TEMPLATEfmb gtRename the form (ex XXARCUST_1) gtDelete the followings from object nevigator gtGo to Data Blocks and delete BLOCKNAME DETAILBLOCK gtGo to Windows and delete BLOCKNAME gtGo to Canvases and delete BLOCKNAMEb) Create a new Window (ex WINDOW10)c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palated) Create a new Datablock (ex CUSTOMERS) wth items from a tablee) Create a frame in the Canvas and attached the itemsf) Modify the PRE-FORM Trigger gtGo to triggersmdashPREFORM gtOriginal Code FND_STANDARDFORM_INFO($Revision 1200 $ Template Form FND$Date 20050506 2325 $ $Author appldev $) app_standardevent(PRE-FORM) app_windowset_window_position(BLOCKNAME FIRST_WINDOW) gtModified Code FND_STANDARDFORM_INFO($Revision 10 $ XXARCUST_1CUST_FORM $Date 20100106 1625 $ $Author Dibyajyoti $) app_standardevent(PRE-FORM) app_windowset_window_position(WINDOW10prime FIRST_WINDOW) gt Compile the codeg) Modification for Program unit gt Go to APP_CUSTOM(Package Body) gtType your First window name in place of ltyour first windowgt gt Compile the codeh) If any Item in the Datablock is of Date type and you want to attach a standard calender to it (ex Orderdate item of Customers datablock) do the following gt Go to Orderdate gt Property palate gt Subclass Information gt Property Class gt Give property class name as TEXT_ITEM_DATE gt Attach LOV as ENABLE_LIST_LAMP gt Create KEY-LISTVAL item level trigger amp add following code into it calendarshow and compile the triggerStep 3 DEPLOY THE FORM IN THE SERVER gt Upload your fmb fileStep 4 CREATE THE fmx FILE IN THE SERVERgtType the code$ORACLE_HOMEbinfrmcmp_batch module=$XXAR_TOPformsUSCUSTOMERSfmb

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 32: AOL Complete Reference

userid=ltusernamegtltpasswordgt output_file=$XXAR_TOPformsUS CUSTOMERSfmx module_type=form compile_all=specialStep 5 REGISTARING THE FORM IN ORACLE APPSa) Registaring the FORM in Oracle Apps gt Go to Application Developer mdashgt Application mdashgt Form gt Give the details FORM CUSTOMERS(name of the custom form) APPLICATION Custom AR Application User Form Name CUSTOMERS_DETAIL Description Customer Detail form gt saveb) Registaring the FORM to a form function gt System Administrator mdash-gtApplication mdash-gt Function gt Give the details Formmdash-gtformCUSTOMERS_DETAIL FunctionXX_CUSTOMER_DETAIL APPLICATION Custom AR Application Properties mdashgt Type Form User Function Name CUSTOMERS_DETAIL_FUNCTION gt savec) Finding the menu to which the above form function is to be attached Again the menu is attached to a responsibilty So we have go in the reverse order to find the menu name gt System Administrator mdash-gtSecurity mdash-gt Responsibility mdash-gtDefine gt Press F11 gt Responsibility Name USRec (searching for US Receivables Super User) gt Press Ctrl + F11 gt This things will come in the form Responsibility Name US Receivables Super User ApplicationReceivables (will come automatically ) gtTake the Menu name mdashgtAR_NAVIGATE_GUI d) Attaching the function to a Submenu of the above Main menu gt System Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu AR_NAVIGATE_GUI gt Press Ctrl+F11 gt Promt Custom Interfaces gt Submenu XXAR_CUSTOM gtSystem Administrator mdash-gtApplication mdashgt Menu gt Press F11 gt Menu XXAR_CUSTOM gt Press Ctrl+F11 gt Create a new gt Promt Customer Detail Form (It will display in the nevigator) gtFunction CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu) gt save gtOne request has been submitted to recompile your menus in the databasee) Viewing the request submitted in the background to recompile the menus to attach the function gt Go to ViewmdashmdashndashgtRequestsmdashmdashmdashgtFind gtThe status should be Compiled NormalStep 6 VIEWING THE FORM IN ORACLE APPLICATION gtGo to Oracle apps front end gtLogin with username and password

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 33: AOL Complete Reference

gtGo to US Receivables Super UsermdashgtCustom Interfaces mdashgtCustomer Detail FormFNDLOAD Examples

Here are few examples of FNDLOADConcurrent ProgramsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM APPLICATION_SHORT_NAME=XXCUST CONCURRENT_PROGRAM_NAME=XXCPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpproglct XXCPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpproglct XXCPNAMEldt PROGRAM CONCURRENT_PROGRAM_NAME=XXCPNAME APPLICATION_SHORT_NAME=XXCUSTResponsibilitiesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXRESNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscursplct XXRESNAMEldt FND_RESPONSIBILITY RESP_KEY=XXRESNAME APPLICATION_SHORT_NAME=XXCUSTRequest GroupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafcpreqglct XXRQGNAMEldt REQUEST_GROUP REQUEST_GROUP_NAME=XXRQGNAME APPLICATION_SHORT_NAME=XXCUSTRequest SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt REQ_SET REQUEST_SET_NAME=XXRQSNAME$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldt REQ_SET_LINKS REQUEST_SET_NAME=XXRQSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcprsetlct XXRQSLNAMEldtFormsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt FORM APPLICATION_SHORT_NAME=XXCUST FORM_NAME=XXFRMNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFRMNAMEldt

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 34: AOL Complete Reference

FunctionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldt FUNCTION FUNC_APP_SHORT_NAME=XXCUST FUNCTION_NAME=XXFUNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXFUNNAMEldtMenusSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldt MENU MENU_NAME=XXMNNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafsloadlct XXMNNAMEldtProfile OptionsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME=XXPRNAME APPLICATION_SHORT_NAME=XXCUSTTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscproflct XXPRNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafscproflct XXPRNAMEldt PROFILE PROFILE_NAME= XXPRNAME APPLICATION_SHORT_NAME=XXCUSTLookupsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=XXCUST LOOKUP_TYPE=XXLKPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importaflvmlulct XXLKPNAMEldt FND_LOOKUP_TYPE LOOKUP_TYPE=XXLKPNAME APPLICATION_SHORT_NAME=XXCUSTValue SetsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXVALSNAMEldt$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD_PARTIAL $FND_TOPpatch115importafffloadlct XXVALSNAMEldt VALUE_SET FLEX_VALUE_SET_NAME=XXVALSNAME APPLICATION_SHORT_NAME=XXCUSTDescriptive Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt DESC_FLEX P_LEVEL=COL_ALLREF_ALLCTX_ONESEG_ALL APPLICATION_SHORT_NAME=PN DESCRIPTIVE_FLEXFIELD_NAME=PN_LEASE_DETAILS P_CONTEXT_CODE=Global Data ElementsTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXDFFNAMEldt

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 35: AOL Complete Reference

Key Flex-fieldsSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldt KEY_FLEX P_LEVEL=COL_ALLFQL_ALLSQL_ALLSTR_ONEWFP_ALLSHA_ALLCVR_ALLSEG_ALL APPLICATION_SHORT_NAME=FND ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure nameTarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafffloadlct XXKFFNAMEldtForm PersonalizationSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldt FND_FORM_CUSTOM_RULES function_name=XXFPNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importaffrmcuslct XXFPNAMEldtFND UsersSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldt FND_USER USER_NAME=XXUSERNAMETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafscursplct XXUSERNAMEldtPrinter StylesSource$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldt STYLE PRINTER_STYLE_NAME=XXPRSTYLETarget$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $FND_TOPpatch115importafcppstllct XXPRSTYLEldtData Definitions for XML Publisher Report Template$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y DOWNLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXBRPRPOPRINT_XML$FND_TOPbinFNDLOAD usernamepassworddatabase 0 Y UPLOAD $XDO_TOPpatch115importxdotmpllct XXBRPRPOPRINT_XML_DDldt

FNDLOAD in Oracle AppsFNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances It is executed at the UNIX command line or via Unix scripts created by the developer Oracle provides configuration files for AOL setup data HR setups and AME These configuration files define the parent and child entities to be downloaded and uploaded This out of the box standard functionality ensures a reliable repeatable process to migratesetup data between instancesWhat can be migrated by FNDLOAD

bull Concurrent Programs Executables bull Request Groups Request Sets bull Profile Options bull Key and Descriptive Flexfields bull Menus and Responsibilities bull Forms and Form Functions bull Attachments bull Messages bull Value Sets and Values bull Lookup Types bull User Responsibilities bull Printer Definitions

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 36: AOL Complete Reference

bull FND Dictionary bull Help Configuration bull Document Sequences bull Concurrent Manager Schedules

How to Migrate DataThe executable for FNDLOAD is located in $FND_TOPbin FNDLOAD can be executed from the command line withthe following parameters or ideally placed in a UNIX script that logs successful uploads or downloadsThe syntax of FNDLOAD is as follows FNDLOAD ltapps$APPS_PWgt 0 Y ltModegt ltConfigfilegt lttarget data filegt ltentitygt ltparametergtWhere

bull 0 Y Concurrent Program Flagsbull Mode UPLOAD UPLOAD_PARTIAL or DOWNLOADbull Configfile = Configuration file (lct) provided by Oracle in $FND_TOPpatch115importbull Target Data File Name of the file (ldt) to be created by Download or used by Upload This file contains

the definition of the entity being migratedbull Entity Type of object being migrated (printer style lookup executablehellip)bull Parameter Parameter related to the entity (Which printer style lookup etc)

Configuration FilesConfigurations files are provided by Oracle for AOL HR and AME entities AOL configuration files are located in $FND_TOPpatch115import HR and AME configuration files are located in $PER_TOPpatch115import in Release11i In release 12 the AME configuration files have moved to $AME_TOPpatch12importAnother Alternative iSetupiSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management iSetup is ideal during implementations and is a front end functional tool iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data However several significant limitations are a factor in the change management process iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data iSetup migrates data only in the primary language There are no multi-language capabilities More significantly for change management iSetup has limited ability to migrate specific objects In some cases filters are available to migrate individual setups such as a single concurrent program but in many cases its all or nothing The source and target instance must be at the same patch level for iSetup iSetup is not an option during the upgrade process even for a point release upgrade Finally iSetup will not migrate Approvals Management entitiesQuery to find Concurrent Requests submitted by a particular userSELECT user_concurrent_program_name responsibility_name request_date argument_text request_id phase_code status_code logfile_name outfile_name output_file_typeFROM fnd_concurrent_requests fcr fnd_concurrent_programs_tl fcp fnd_responsibility_tl fr fnd_user fuWHERE fcrCONCURRENT_PROGRAM_ID = fcpconcurrent_program_id and fcrresponsibility_id = frresponsibility_id and fcrrequested_by = fuuser_id and user_name = upper(user_name)ORDER BY REQUEST_DATE DESC

Oracle Forms PersonalizationWith the Oracle E-Business Suite release 11510 the Oracle has introduced a mechanism which revolutionizes the waythe forms can be customized to fulfill the customer needs For many years Oracle Applications has provided a custom library using which the look and behavior of the standard forms can be altered but the custom library modifications require extensive work on SQL and PLSQL In the release 11510 Oracle has provided a simple and easy feature to

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 37: AOL Complete Reference

implement the customer specific requirements without modifying the underlying forms code or CUSTOM library Although CUSTOM library still can be used for forms customization to implement the complex business logic the personalization feature provided in the latest release is easy faster and requires minimum development effortWhy Forms Personalization

bull Oracle Supports personalization unlike customizationbull Personalizations are stored in tables rather than filesbull Will not have a bigger impact when you upgrade or apply patches to the environmentbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Easy to disableenable with click of a button bull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that ability bull Can be applied to new responsibilitiesusers easily bull Can be restricted to a function or form

What can be implemented through Forms Personalization The below can be done using Personalization

bull Zoom from one form to anotherbull Pass data from one form to another through global variables bull Change LOV values dynamically bull EnableDisableHide fields dynamically bull Display user friendly messages when required bull Launch URL directly from oracle form bull Execute PLSQL programs through FORM_DDL package bull Call custom libraries dynamically

Personalization Tables FND_FORM_CUSTOM_RULESFND_FORM_CUSTOM_ACTIONSFND_FORM_CUSTOM_SCOPESFND_FORM_CUSTOM_PARAMSFND_FORM_CUSTOM_PROP_LISTFND_FORM_CUSTOM_PROP_VALUESInvoking the Personalization screenThe personalization form should be used to implement the custom rules on a specific form The specific form refers to the desired form on which you want to apply the custom business logic or modify the form behaviorThe personalization form is invoked byhellipMenu Navigation Help gt Diagnostics gt Custom Code gt PersonalizeDisable the personalization featureIt is possible that a change you make completely breaks a form to the point that it will not even run Heres how to recover

bull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Off o This will disable all callouts to Forms Personalization

bull Run the form of interest o It should run now because your changes were skipped

bull Invoke the Personalization screen and correct the problembull On the pulldown menu choose Help gt Diagnostics gt Custom Code gt Normal to re-enable processing of

PersonalizationsLimitationsAlthough it is faster than a speeding bullet it is not able to leap over tall buildings

bull You can only change what Forms allows at runtime o Cannot create new itemso Cannot move items between canvaseso Cannot display an item which is not on a canvaso Cannot set certain propertieso Cannot change frames graphics boilerplate

bull You can only respond to certain Trigger Events o WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 38: AOL Complete Reference

WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORD (not in all forms)o Product-specific events

bull May interfere with or be overridden by base product codebull Expected user is an AdminDeveloper

o Knowledge of Oracle Developer is extremely desirableo Knowledge of PLSQL Coding Standards andor APIs required in some cases

bull Normal rules for customizations apply o Extensive testing in a Test environment is required

Relationship with CUSTOM librarybull CUSTOM is a stub library Oracle ships that receives Trigger Events Customers are free to add any code

they like to itbull CUSTOM and Form Personalizations drive off the same Trigger Events

o Form Personalizations are processed first then the event is sent to CUSTOMbull CUSTOM can do more because it has complete access to all PLSQL and SQLbull But for most changes Form Personalizations is adequate and is significantly simpler

Custompll in Oracle ApplicationCustom Library (custompll) allows to extendcustomize Oracle Applications form(Oracle Form) without changing or modifying Oracle Applications code Examples may include enforcing a new business rule opening a form using zoometc Most of the things that we can do using custompll we can achieve that using Forms Personalization Since Custompll takes the full advantage of PLSQL so it is having an edge over Forms Personalization for complex customizationsCUSTOMpll is used to add extensions to Oracles form Functionality Some of the common scenarios where CUSTOMpll can be used are-1 EnablingDisabling the fields2 Changing the List of Values in a LOV field at runtime3 Defaulting values4 Additional record level validations5 Navigation to other screens6 Enabling Special MenuWhere is this locatedCustompll is located in $AU_TOPresource DirectoryHow to add code to thisOpen this pll using the Form builder and make changes to the program unitsHow to compile this PLL Once you make changes you need to compile the pll Use the F60gen to compile itf60gen module=custompll userid=APPS output_file=$AU_TOPresourcecustomplx module_type=library batch=no compile_all=specialWhile writing code inside custompll we should consider following things1 We should not run any SQL statement inside this we can use record group2 We should not perform any DML operations instead we should call database procedure and functions for the sameFor following Events call will go to CUSTOM Library WHENndashFORMndashNAVIGATEWHENndashNEWndashFORMndashINSTANCEWHENndashNEWndashBLOCKndashINSTANCEWHENndashNEWndashRECORDndashINSTANCEWHENndashNEWndashITEMndashINSTANCEWHENndashVALIDATEndashRECORDSPECIALn (where n is a number between 1 and 45)ZOOMEXPORTKEYndashFn (where n is a number between 1-8)Custom Library contains Custom Package which is having two Functions and one procedure1] ZOOM_AVAILABLE

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 39: AOL Complete Reference

This function allows you to specify if zooms exist for the current context If zooms are available for this block then return TRUE else return FALSE This routine is called on a per-block basis within every Applications form from the WHEN-NEW-BLOCK-INSTANCE trigger Therefore any code that will enable Zoom must test the current form and block from which the call is being made By default this routine must return FALSESample code1

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = DEMXXEOR and block_name = ORDERS) then return TRUE else return FALSE end if

end zoom_available

Sample code2

function zoom_available return Boolean is

form_name varchar2(30) = name_in(systemcurrent_form) block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = APXINWKB and block_name = INV_SUM_FOLDER) then return TRUE elsif (form_name = APXINWKB and block_name = LINE_SUM_FOLDER) then return TRUE else return FALSE end if

end zoom_available

2] STYLEThis function returns a integer value This function allows to override the execution style of Product specific events butit doesnt effect generic events like when-new-form-instance Possible return values are1 custombefore2 customafter3 customoverride4 customstandardBy default it returns customstandardSample codefunction customstyle(event_name varchar2) return integer isbegin if event_name = MY_CUSTOM_EVENT then return customoverride else return customstandard end ifend style

3] EVENT This procedure allows you to execute your code at specific events including ndash ZOOM ndash WHEN-NEW-FORM-INSTANCE ndash WHEN-NEW-BLOCK-INSTANCE ndash WHEN-NEW-RECORD-INSTANCE ndash WHEN-NEW-ITEM-INSTANCE ndash WHEN-VALIDATE-RECORD

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 40: AOL Complete Reference

By default this routine must perform nullSample codeprocedure event(event_name varchar2) is

form_name varchar2(30) = name_in(systemcurrent_form)block_name varchar2(30) = name_in(systemcursor_block)

begin

if (form_name = XXBI and block_name = xxcc) Then if(event_name = WHEN-NEW-FORM-INSTNACE) --Write your code here elsif(event_name = WHEN-VALIDATE-RECORD)THEN --Write your code here else null end if end ifend

How to make the changes get affected

Once you make all the necessary changes compile the pll and generate the PLX file Since the CUSTOM library is loaded once for a given session a user must log out of the application and sign-on again before any changes will become apparentForms Personalization an alternative of custompll In older versions prior to 11i CustomPLL was most prominently used for adding additional features in the seeded form but the latest version of Oracle EBS comes with the feature called as Forms Personalization which allows even an end user to alter the seeded forms functionality using an user interface called the Personalization formAdvantages of Forms Personalization over CustomPLL

bull Forms personalization can be used by an user with limited PLSQL knowledge bull Changes take place immediately on reopening the formbull Anything which can be done using CustomPLL can be done using Forms Personalization alsobull Personalizations are stored in base tables related to Form Personalizationbull CUSTOMpll is a single fileentity hence only one developer can make changes to CUSTOMpll at any

given point in time This is not a restriction in Forms personalizationbull Easy to disableenable with click of a buttonbull Can be moved easily through FNDLOAD from one instance to otherbull Can be restricted at siteresponsibilityuser levelbull Personalization stores who columns with which we have the ability to track who createdmodified it where

as in CUSTOMPLL we dont have that abilitySteps To Register Unix Shell Script As A Concurrent ProgramWe can register an Unix shell script in our oracle application through a concurrent program Here are the stepsStep 1 Copy the prog script in ASCII mode to the bin directory of your application top directory For example call the script XXSHELLprog and place it under $XXCUST_TOPbinstep 2Check the file permissions Sometimes it is required to give full permission to the scriptstep 3Make a symbolic link from your script to $FND_TOPbinfndcpesr For example if the script is called XXSHELLprog then use thiscd $XXCUST_TOPbinln -s $FND_TOPbinfndcpesr XXSHELLThis 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 locatedstep 4 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 executableFor the example above Use XXSHELL as executable name NoteYour script will be passed at least 4 parameters from $1 to $4$1 = orauserpwd

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 41: AOL Complete Reference

$2 = userid(apps)$3 = username$4 = request_idAny other parameters you define will be passed in as $5 and higher Make sure your script returns an exit status alsofndcpesr is a standard utility available in $FND_TOP directory It is mainly used by the application to parse the above four arguments to the shell scriptsQuery to find Parameters and Value Sets associated with a Concurrent ProgramSELECT fcpluser_concurrent_program_name Concurrent Program Name fcpconcurrent_program_name Short Name fdfcuvcolumn_seq_num Column Seq Number fdfcuvend_user_column_name Parameter Name fdfcuvform_left_prompt Prompt fdfcuvenabled_flag Enabled Flag fdfcuvrequired_flag Required Flag fdfcuvdisplay_flag Display Flag fdfcuvflex_value_set_id Value Set Id ffvsflex_value_set_name Value Set Name flvmeaning Default Type fdfcuvDEFAULT_VALUE Default Value

FROM fnd_concurrent_programs fcp fnd_concurrent_programs_tl fcpl fnd_descr_flex_col_usage_vl fdfcuv fnd_flex_value_sets ffvs fnd_lookup_values flv

WHERE fcpconcurrent_program_id = fcplconcurrent_program_id AND fcpluser_concurrent_program_name = conc_prg_name AND fdfcuvdescriptive_flexfield_name = $SRS$ || fcpconcurrent_program_name AND ffvsflex_value_set_id = fdfcuvflex_value_set_id AND flvlookup_type(+) = FLEX_DEFAULT_TYPE AND flvlookup_code(+) = fdfcuvdefault_type AND fcplLANGUAGE = USERENV (LANG) AND flvLANGUAGE(+) = USERENV (LANG)

ORDER BY fdfcuvcolumn_seq_num

Functions in Oracle AOLWhat is Function A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a responsibilityWhat are the Function TypesThere are two types of functionsa] Form (Form Function)

bull A form function (form) invokes an Oracle Forms formbull Form functions appear in the Navigate window and can be navigated to

b] Subfunction (NonndashForm Function)bull A nonndashform function (subfunction) is a securable subset of a forms functionality in other words a

function executed from within a formbull Subfunctions are frequently associated with buttons or other graphical elements on forms

Forms vs Subfunctionsbull Forms appear in the Navigate window and can be navigated to Subfunctions do not appear in the Navigate

window and cannot be navigated tobull Forms can exist on their own Subfunctions can only be called by logic embodied within a form they

cannot exist on their ownbull A form as a whole including all of its program logic is always designated as a function Subsets of a form

s program logic can optionally be designated as subfunctions if there is a need to secure those subsetsAdvantages of Form FunctionsIf you want to open the Form in different modes without creating the copies we can create a Form Function and pass the parameters based on the requirement The parameter which is passed in the form function must be already defined

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 42: AOL Complete Reference

in the form while designing the Form A menu can be assigned to more than one Responsibility If you want to restrict some of the Forms from a particular responsibility we can include Form Function of those Forms in Menu Exclusions of the ResponsibilityWhat are the standard function types

bull FORM mdash Oracle Applications form functions are registered with a type of FORMbull SUBFUNCTION mdash Subfunctions are added to menusbull JSP mdash JSP functionsbull WWW ndashPLSQL functionsbull WWK ndashPLSQL functions that open a new windowbull WWR or WWL ndashused for some products in the Oracle SelfndashService Web Applicationsbull WWJ ndashOA Framework JSP portletbull SERVLET ndashServlet functionsbull DBPORTLET ndashDatabase provider portletbull WEBPORTLET ndashWeb provider portlet

AOL TerminologyResponsibilitiesA responsibility is a level of authority in Oracle Applications that lets users access only those Oracle Applications functions and data appropriate to their roles in an organizationRequest GroupIt is a collection of concurrent Programs It is used to request programs from the responsibilityData Group It is a collection of Modules used to integrate one or more Modules for cross application transfer of data cross application reporting and cross application reference If we want to get data from other Modules we need to define those modules in the Data GroupFunctions A function is a part of an applications functionality that is registered under a unique name for the purpose of assigning it to or excluding it from a menu (and by extension a responsibility)Menu A menu is a collection of Sub‐Menus and FunctionsConcurrent ProgramIt is an instance of an execution file along with parameter definitions and incompatibilities Several concurrent programs may use the same execution file to perform their specific tasks each having different parameter defaults and incompatibilitiesConcurrent Program ExecutableIt is an executable file that performs a specific task The file may be a program written in a standard language a reporting tool or an operating system languageConcurrent RequestIt is a request to run a concurrent program as a concurrent processConcurrent ProcessIt is an instance of a running concurrent program that runs simultaneously with other concurrent processesConcurrent ManagerIt is a program that processes users requests and runs concurrent programs System Administrators define concurrent managers to run different kinds of requestsValue SetThe value set is a collection (or) container of values It provides list of values to the end user to accept one of the valuesas report parameter valueProfilesA user profile is a set of changeable options that affects the way your applications run Oracle Application Object Library establishes a value for each option in a users profile when the user logs on or changes responsibilityKey FlexfieldsThey are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itsown base TableDescriptive FlexfieldsThey are used to capture the additional or extra Business information of the organization DFF are used to add extra

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 43: AOL Complete Reference

accounts those changes from one business to another business All DFF columns are defined as Attribute Columns Allthese columns are defined in the transaction table itself There are around 5000+ DFF availableFlexField QualifiersA Flex field qualifier identifies a particular segment of a key flex field These are based on Key Flex Fields (KFF) FFQs are varry from one KFF to another KFF and it is not compulsory that all the KFF should have FFQsSegment QualifiersA Segment Qualifier identifies a particular type of value in a single segment of a key flex field Segment Qualifier is based on FFQs and it is not compulsory that all the FFQs should have Segment QualifiersDynamic InsertionDynamic Insertion is the insertion of new valid combination into a Key Flexfields Combinations Table from a form other than the combinations formAlertsOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts Oracle Alert will send messages or perform predefined actions in an action set when important events occur Alert is a mechanism that checks your database for a specific exception condition Alerts are used to monitor your business information and to notify you of the information you wantStandard Request SubmissionSRS provides you with a set of windows for running reports and Programs and a set of windows for creating groups of reports and programs to run together

Registering Reports in Oracle ApplicationSteps Required for Registering a Simple Report1 Create a Report using Report Builder2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Concurrent Program5 Assign the executable to Concurrent Program6 Assign the Concurrent Program to Request Group7 Assign the Request Group to the Responsibility8 Assign the Responsibility to the User Registering Parametric Reports1 Create a Report using Report Builder with parameters2 Compile and copy RDF file in module specific directory3 Register the executable with System Administrator Module4 Define the Value set to validate the parameters5 Define the Concurrent Program6 Assign the executable to Concurrent Program7 Define Parameters8 Assign Value Set to the Parameters9 Assign bind parameter of yours to the TOKENNote Token is used to map bind parameters with the formal parameters of the Concurrent Program10 Assign the Concurrent Program to Request Group11 Assign the Request Group to the Responsibility12 Assign the Responsibility to the UserTo reference the values of Prior Parameters of a particular program into the values of other parameter is based on the Value Set The value of the 1st parameter is to be referenced in where clause of the 2nd ParameterWHERE Deptno = $FLEX$First_Parameter

Oracle Inventory provides the following flexfields 1] Account AliasesFlexfield Code MDSPTable MTL_GENERIC_DISPOSITIONSUnique ID Column DISPOSITION_IDComment This key flexfield supports only one structure2] Item CatalogsFlexfield Code MICG

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 44: AOL Complete Reference

Table MTL_ITEM_CATALOG_GROUPSUnique ID Column ITEM_CATALOG_GROUP_IDComment This key flexfield supports only one structure3] Item CategoriesFlexfield Code MCATTable MTL_CATEGORIESUnique ID Column CATEGORY_IDComment You must design and configure your Item Categories Flexfield before you can start defining items since all items must be assigned to categories You can define multiple structures for your Item Categories Flexfield each structure corresponding to a different category grouping scheme You can then associate these structures with the categories and category sets you define4] Sales OrdersFlexfield Code MKTSTable MTL_SALES_ORDERS Unique ID Column SALES_ORDER_IDComment The Sales Order Flexfield is a key flexfield used by Oracle Inventory to uniquely identify sales order transactions Oracle Order Entry interfaces to Oracle Inventory Your Sales Order Flexfield should be defined as Order Number Order Type and Order Source This combination guarantees each transaction to Inventory is unique You must define this flexfield before placing demand or making reservations in Oracle Order Entry You must set up the OE Source Code profile option to determine the source code you will use in for the third segment of this flexfield to guarantee that each transaction is unique (Oracle Inventory defaults the value of the OE Source Code profile option to ORDER ENTRY)5] Stock LocatorsFlexfield Code MTLLTable MTL_ITEM_LOCATIONSUnique ID Column INVENTORY_LOCATION_IDComment You can use the Stock Locators Flexfield to capture more information about stock locators in inventory If you do not have Oracle Inventory installed or none of your items have locator control it is not necessary to set up this flexfield If you keep track of specific locators such as aisle row bin indicators for your items you need to configure your Stock Locators Flexfield and implement locator control in your organization This key flexfield supports only onestructure6] System ItemsFlexfield Code MSTKTable MTL_SYSTEM_ITEMSUnique ID Column INVENTORY_ITEM_IDComment You can use the System Items Flexfield (also called the Item Flexfield) for recording and reporting your item information You must design and configure your Item Flexfield before you can start defining items All Oracle Applications products that reference items share the Item Flexfield and support multiple-segment implementations However this flexfield supports only one structure You must set up your OE Item Flexfield profile option to specify the Item Flexfield structure that you will use for your Oracle applications Users can also set up the OE Item Flexfield Entry Method profile option to specify your preferred method of entry for this flexfieldWhat are Oracle Alerts

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 45: AOL Complete Reference

Oracle Alert facilitates the flow of information within your organization by letting you create entities called to monitor your business information and to notify you of the information you wantWhat they are capable of

bull Keep you informed of database exception conditions as they occurbull Take predefined actions when it finds exceptions in your database without user interventionbull Take the actions you specify depending upon your response to an alert messagebull Perform routine database tasks automatically according to the schedule you definebull Keep you informed of exception conditions through Email

What are the types of AlertYou can define one of two types of alerts an event alert or a periodic alert

bull An event alert immediately notifies you of activity in your database as it occursbull A periodic alert on the other hand checks the database for information according to a schedule you define

What are the alert actions availablebull Sending the retrieved information to someone in an Emailbull Run a concurrent programbull Run an operating scriptbull Run a SQL Statement script

What is On-Demand periodic alertIt is a periodic alert with frequency as On-Demand That means there is no specific period assigned to this alert and you can run this alert at any time you want using Request Periodic Alert Check formWhat you specify in the Alert Details window

bull Default values for inputs variablesbull Additional characteristics for output variablesbull Application installations information you want the alert to run against

What are the Action Levels for your alert actionsThere are three types of level for your action Detail Summary and No ExceptionDuring an alert check a detail action performs once for each individual exception found a summary action performs once for all exceptions found and a no exception action performs when no exceptions are foundWhat is Action SetAn action set can include an unlimited number of actions and any combination of actions and action groups for your alert You can define as many action sets as you want for each alert Oracle Alert executes the alert Select statement once for each action set you define During each action set check Oracle Alert executes each action set member in the sequence you specifyWhat is Distribution List in Oracle AlertDistribution lists let you predefine a set of message recipients for use on many actions If a recipient changes you need only adjust it in the distribution list not in the individual message actionsWhat is Summary Threshold

bull Oracle Alert can automatically determine whether to perform a detail or summary action depending upon the number of exceptions found by the alert Select statement

bull If you define a summary threshold Oracle Alert performs a detail action for each exception found by the Select statement but if the number of exceptions found exceeds the summary threshold Oracle Alert performs a summary action

bull You need to first define a detail and a summary action include them in a threshold group and then specify a summary threshold

What is Periodic SetYou can create a set of periodic alerts that Oracle Alert checks simultaneously Use the Request Periodic Alert Check window to check the periodic set Note that each periodic alert you include in a periodic set continues to run according to its individually defined frequencyWhat is Response Processing in AlertOracle Alert can process responses to your alert messages When Oracle Alert receives a response to a specific alert message it automatically performs the actions you define Optionally respondents can supply values that Oracle Alert

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 46: AOL Complete Reference

uses to perform these actions Response processing lets you automate routine user-entry transactions streamlining yourorganizations operationsNote To enable response processing ensure that you have performed the required setup stepsWhat is Action EscalationYou can define a set of escalating detail actions called an escalation group for Oracle Alert to perform when it finds the same exceptions during consecutive alert checks Oracle Alert performs a different detail action each time it encounters the same exception so you can define actions that correspond to increasing severity levelsHow event alert worksOnce you define an event alert to monitor a table for inserts andor updates any insert or update to the table will triggerthe event alert When an insert or update to an event table occurs Oracle Alert submits to the concurrent manager a request to run a concurrent program called Check Event Alert (ALECTC) The concurrent manager runs this request according to its priority in the concurrent queue When the request is run Check Event Alert executes the alert Select statement If the Select statement finds exceptions Check Event Alert performs the actions defined in the enabled action set(s) for the alert If the Select statement does not find any exceptions Check Event Alert performs the No Exception actions in the enabled action set(s) for the alertFinding SQL Command on Java PageHere are the steps to view the SQL Statements from Java User Interface (UI) Pages For the purpose of this exercise we will look at the query used to retrieve Bank Accounts attached to a Customer Site1 Update the following Profile Option Values to YES at user level

bull FND Diagnosticsbull Personalize Self-Service Defn

2 Go to the Java UI Page where the SQL Query executes In this example we go to Customers gt Customer Sites3 Click on the link About this Page in the bottom Left Hand Side of the page4 Navigate to the Page Tab on the Top Left Hand Side of the page5 In the Business Component References Details Section (You may need to expand this section) Go to the View Objects Sub Section6 Find the Object that describes the piece of information that you want to find the query for In this case its Bank Accounts The relevant Object has been highlighted (I searched the HTML for bank to find this)7 Click on the link

The full Query used can be cut and pasted into a SQL Editor and the query runNote You will have to find the Bind Variables passed to the query in order to do this This may be found by looking up one of the previous queries

Queries for Value SetsValue Sets based on tableThis Query gives details of value sets that are based on a oracle application tablesselect ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvtvalue_column_name ffvtmeaning_column_name ffvtid_column_name ffvtapplication_table_name ffvtadditional_where_clauseFROM fnd_flex_value_sets ffvs fnd_flex_validation_tables ffvtWHERE ffvsflex_value_set_id = ffvtflex_value_set_idIndependent Value set Details

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 47: AOL Complete Reference

This query gives details of independent FND Value sets ie Values are static and these are not derived from any application tableSELECT ffvsflex_value_set_id ffvsflex_value_set_name ffvsdescription set_description ffvsvalidation_type ffvflex_value_id ffvflex_value ffvtflex_value_meaning ffvtdescription value_descriptionFROM fnd_flex_value_sets ffvs fnd_flex_values ffv fnd_flex_values_tl ffvtWHERE ffvsflex_value_set_id = ffvflex_value_set_id and ffvflex_value_id = ffvtflex_value_id AND ffvtlanguage = USERENV(LANG)

Know your Concurrent Programs PerformanceThe below query will give you the time taken to execute the concurrent Programs with the latest concurrent programs with least execution time comes firstselect frequest_id ptuser_concurrent_program_name user_conc_program_name factual_start_date start_on factual_completion_date end_on floor(((factual_completion_date-factual_start_date) 246060)3600) || HOURS || floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60) || MINUTES || round((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600 - (floor((((factual_completion_date-factual_start_date) 246060) - floor(((factual_completion_date-factual_start_date) 246060)3600)3600)60)60) )) || SECS time_difference pconcurrent_program_name concurrent_program_name decode(fphase_codeRRunningCCompletefphase_code) Phase fstatus_codefrom appsfnd_concurrent_programs p appsfnd_concurrent_programs_tl pt appsfnd_concurrent_requests fwhere fconcurrent_program_id = pconcurrent_program_id and fprogram_application_id = papplication_id and fconcurrent_program_id = ptconcurrent_program_id and fprogram_application_id = ptapplication_id AND ptlanguage = USERENV(Lang) and factual_start_date is not nullorder by factual_start_date desc factual_completion_date-factual_start_date

Get Apps Environment Details From DatabaseAPPLSYS FND_APPL_TOPSThis table tracks the mount points for the APPL_TOPs in an Applications system Each mount point has a distinct host and pathselect name node_id path shared created_by creation_date last_updated_by last_update_date

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 48: AOL Complete Reference

FILE_SYSTEM_GUID appl_top_guidFROM APPLSYSFND_APPL_TOPS

APPLSYS FND_APP_SERVERSThis table will track the servers used by the E-Business Suite systemselect server_type name creation_date node_idfrom applsysfnd_app_servers

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APPLSYS FND_ENV_CONTEXTThis table stores information about environment name and value for each of the concurrent processselect variable_name valuefrom fnd_env_contextwhere variable_name like _TOP escape and concurrent_process_id = ( select max(concurrent_process_id) from fnd_env_context )order by 1

APIs to Create UserReset Password and Add ResponsibilityI have created few queries using Oracle provided packageFND_USER_PKG These queries might be very useful when you donot have the Oracle Apps front end access or you like to get in done through backendUsing the below query you can create a User in Oracle applicationJust pass username password and email id as parameters and it will create a userdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_password varchar2(30)=ampEnter_Passwordv_session_id integer = userenv(sessionid)v_email varchar2(30)=upper(ampEnter_Email_Id)begin fnd_user_pkgcreateuser ( x_user_name =gt v_user_name x_owner =gt null x_unencrypted_password =gt v_password x_session_number =gt v_session_id x_start_date =gt sysdate x_end_date =gt null x_email_address =gt v_email ) commit DBMS_OUTPUTput_line (User||v_user_name||Created Successfully)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to create User due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) ROLLBACKendMay a times we forgot the apps password Then you can use the below query to resent the password just in few secondsdeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_new_password varchar2(30)=ampEnter_New_Passwordv_status booleanbegin v_status= fnd_user_pkgChangePassword ( username =gt v_user_name newpassword =gt v_new_password ) if v_status =true then dbms_outputput_line (The password reset successfully for the User||v_user_name)

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 49: AOL Complete Reference

commit else DBMS_OUTPUTput_line (Unable to reset password due to||SQLCODE|| ||SUBSTR(SQLERRM 1 100)) rollback END ifendUse the below query to add a responsibility to a user The advantage here is that you donot require system administratorresponsibility access to add a responsibilitydeclarev_user_name varchar2(30)=upper(ampEnter_User_Name)v_resp varchar2(30)=ampEnter_Responsibilityv_resp_key varchar2(30)v_app_short_name varchar2(50)begin select rresponsibility_key aapplication_short_name into v_resp_keyv_app_short_name from fnd_responsibility_vl r fnd_application_vl a where rapplication_id =aapplication_id and upper(rresponsibility_name) = upper(v_resp)

fnd_user_pkgAddResp ( username =gt v_user_name resp_app =gt v_app_short_name resp_key =gt v_resp_key security_group =gt STANDARD description =gt null start_date =gt sysdate end_date =gt null ) commit DBMS_OUTPUTput_line (Responsibility||v_resp|| ||is added to the User||v_user_name)EXCEPTIONwhen others then DBMS_OUTPUTput_line (Unable to add the responsibility due to||SQLCODE|| ||SUBSTR(SQLERRM1 100)) rollbackend

Multi-Org or multiple organization access (MOAC) in R12What is MOACMulti-Org or multiple organization access (MOAC) is basically an ability to access multiple operating units from a single application responsibilityWhy it has been createdPrior to R12 end users use to toggle switch change responsibilities in order to do transactions (like invoice payment processing in AP) in different operating units This is a very time consuming and inefficient way of recording transactions when you have 100s of operating units specially Internet based organizations who have worldwide operations in almost all the countriesTo address this a new feature in R12 has been introduced in which user can switch between operating units within a responsibility something similar to Change Organization feature in inventory Prior to R12 user would have to switch responsibilities in order to enter transactions in respective operating units (tagged to the responsibility)What are its advantages

bull Multi-Org Access Control (MOAC) enables companies that have implemented a Shared Services operating model to efficiently process business transactions by allowing them to access process and report on data for an unlimited number of operating units within a single applications responsibility

bull This increases the productivity of Shared Service Centers as users no longer have to switch application responsibilities when processing transactions for multiple operating units at a time

bull Ability to view data from multiple operating units from a single responsibility gives users more information This enables them to make better decisions

The following SQL will dump out the Security Profiles and Operating Unit Names assigned to themSELECT pspSECURITY_PROFILE_NAME pspSECURITY_PROFILE_ID houNAME

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 50: AOL Complete Reference

houORGANIZATION_IDFROM PER_SECURITY_PROFILES psp PER_SECURITY_ORGANIZATIONS pso HR_OPERATING_UNITS houWHERE psoSECURITY_PROFILE_ID = pspSECURITY_PROFILE_ID AND psoORGANIZATION_ID = houORGANIZATION_IDThere are three Profile Options you need to be aware of related to Multi-Org that should be set at the Responsibility Level

bull MO Security Profile- Always evaluated firstbull MO Operating Unit- Secondary priority being evaluated after MO Security Profilebull MO Default Operating Unit- Sets the default Operating Unit for transactions when running under a Security

ProfileHow it is done in R12In Release 12 one creates a Security Profile and assigns as many operating units as you required One can tie that security profile to a single responsibility using a profile option called MO Security Profile For example you could assign the security profile to the EMEA Payables responsibility to allow that responsibility to process invoices across all operating unitsIn Release 12 define a security profile in HR using the Security profile form or the Global Security profile form and assign all of the operating units that one would want a responsibility to access The one needs to run a concurrent request called Run Security List Maintenance from HR which will make those security profile available and allow one to assign them to a responsibility via a profile option called MO Security ProfileOne can define another profile option called MO Default Operating Unit which is optional and allows one to specify a default operating unit that will be the default when you open different subledger application forms

Alerts in Oracle ApplicationOracle Alert facilitates the flow of information within your organization by letting you create entities called alerts to monitor your business information and to notify you of the information you want You can define one of two types of alerts an event alert or a periodic alertEvent AlertAn event alert immediately notifies you of activity in your database as it occurs When you create an event alert you specify the followingbull A database event that you want to monitor that is an insert andor an update to a specific database tablebull A SQL Select statement that retrieves specific database information as a result of the database eventbull Actions that you want Oracle Alert to perform as a result of the database event An action can entail sending someone an electronic mail message running a concurrent program running an operating script or running a SQL statement script You include all the actions you want Oracle Alert to perform in an action setPeriodic AlertA periodic alert on the other hand checks the database for information according to a schedule you define In a periodic alert specify the followingbull A SQL Select statement that retrieves specific database informationbull The frequency that you want the periodic alert to run the SQL statementbull Actions that Oracle Alert to perform once it runs the SQL statement An action can entail sending the retrieved information to someone in an electronic mail message running a concurrent program running an operating script or running a SQL statement script We include all the actions we want Oracle Alert to perform in an action setNavigation in Oracle Apps to define an alertGo to Alert Manager ResponsibilityAlert gtgt DefineTransfer Alert from one instancedatabase to otherGo to Alert Manager ResponsibilityAlert gtgt DefineGo to Tools Menu on topClick on Transfer AlertEnter source and destination fields and click TransferHow to define an periodic alert

1 Go to Alert Manager gt Alert gt Define2 Select the Periodic Tab3 Enter the name of the application that owns the alert in the Application field4 Name the alert (up to 50 characters) and give it a meaningful description (up to 240 characters)

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 51: AOL Complete Reference

5 Check Enabled to enable your periodic alert6 Set the frequency for the periodic alert to any of the followingbull On Demandbull On Day of the Monthbull On Day of the Weekbull Every N Calendar Daysbull Every Daybull Every Other Daybull Every N Business Daysbull Every Business Daybull Every Other Business Day

Enter a SQL Select statement that retrieves all the data your alert needs to perform the actions you plan to define Your periodic alert Select statement must include an INTO clause that contains one output for each column selected by your Select statement

Here is an example of a periodic alert Select statement that looks for users who have not changed their passwords within the number of days specified by the value in THRESHOLD_DAYSSELECT user_namepassword_dateTHRESHOLD_DAYSINTO ampUSERampLASTDATEampNUMDAYSFROM fnd_userWHERE sysdate = NVL(password_datesysdate) + THRESHOLD_DAYSORDER BY user_nameAlthough Oracle Alert does not support PLSQL statements as the alert SQL statement definition you can create a PLSQL packaged function that contains PLSQL logic and enter a SQL Select statement that calls that packaged functionYou can verify the accuracy and effectiveness of your Select statement Choose Verify to parse your Select statement and display the result in a Note windowChoose Run to execute the Select statement in one of your applications Oracle IDs and display the number of rows returned in a Note windowOnce you are satisfied with the SQL statement save your workSpecifying Alert DetailsOnce you define an event or periodic alert in the Alerts window you need to display to the Alert Details window to complete the alert definition The Alert Details window includes information such as which Application installations you want the alert to run against what default values you want your inputs variables to use and what additional

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 52: AOL Complete Reference

characteristics you want your output variables to have

Creating Alert ActionsAfter you define your alert you need to create the actions you want your alert to perform There are four types of actions you can createbull message actionsbull concurrent program actionsbull operating script actionsbull SQL statement script actionsChoose ActionsEnter a name (up to 80 characters) and description (up to 240 characters) for your alert actionSelect a level for your action Detail Summary or No ExceptionChoose Action Details to display the Action Details windowSelect the type of action you want to create in the Action Type field

Creating an Event Alert

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 53: AOL Complete Reference

Specify the name of the application and the database table that you want Oracle Alert to monitorNote You cannot use a view as the event table for your alertCheck After Insert andor After Update if you want to run your event alert when an application user inserts andor updates a row in the database tableSpecify a value in the Keep _ Days field to indicate the number of days of exceptions actions and response actions history you want to keep for this alertSpecify a value in the End Date field if you want to disable your alert by a certain dateImportant Alert Tables

bull ALR_ALERTSbull ALR_ACTIONSbull ALR_ACTION_SETSbull ALR_ACTION_SET_INPUTSbull ALR_ACTION_SET_OUTPUTSbull ALR_ACTION_SET_MEMBERSbull ALR_ALERT_CHECKSbull ALR_ALERT_INPUTSbull ALR_ALERT_OUTPUTSbull ALR_ACTION_SET_CHECKSbull ALR_RESPONSE_SETSbull ALR_RESPONSE_ACTIONSbull ALR_VALID_RESONSES

Oracle Alert uses the following internal viewsbull ALR_ALERT_ACTIONS_VIEWbull ALR_ALERT_HISTORY_VIEWbull ALR_CHECK_ACTION_HISTORY_VIEWbull ALR_INSTALLATIONS_VIEWbull ALR_PERIODIC_ALERTS_VIEWbull ALR_RESPONSE_ACTIONS_VIEWbull ALR_SCHEDULED_PROGRAMSbull ALR_VARIABLES_AND_OUTPUTS

KEY FLEX FIELDS (KFF)KFF are used to capture mandatory or Key Business information of the Organization Each Key Flex Field is having itswon base TableA key flexfield is a field made up of segments each of which has both a value and a meaning You can think of a key flexfield as an intelligent field that your business can use to store information represented as codesMost organizations use codes to identify general ledger accounts part numbers and other business entities Each segment in the code represents a characteristic of the entity A combination of segment values also known as a key flexfield code combination uniquely describes a business entity stored in a key flexfieldThe organization decides the following four basic information for each key flexfield

1 How many segments an entity has2 What each segment means3 What values each segment can have4 What each segment value means

Few Key Flexfields in different oracle modules areModule GL

1 AccountingModule HRMS

1 Job 2 Position3 Grade4 Personal Analysis

Module Inventory1 Account Aliases2 Item Catalogs3 Item Categories4 Sales Orders

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 54: AOL Complete Reference

5 Stock Locations6 System Items

Module Fixed Assets1 Asset2 Category3 Location

Module AR1 Sales Tax Location2 Territory

NoteFlexfields consists of Structures gt Structures consists of Segments gt Segments consists of Value Set gtValue Set consists of ParametersMain TablesFND_ID_FLEXSThis table captures the information of all the Key FlexFields The main columns in this table are

bull APPLICATION_ID ‐ Column consists of Application IDbull ID_FLEX_CODE ‐ Column KFF Code (like GL AR etc)bull ID_FLEX_NAME - KFF Name (like Accounting Flexfield Category Flexfieldetc)bull APPLICATION_TABLE_NAME ndash Name of combination table (like GL_CODE_COMBINATIONS

FA_LOCATIONS etc)FND_ID_FLEX_STRUCTURESThis table stores structure information about key Flexfields Each Structure is uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Code of KFFbull ID_FLEX_NUM ndash Number of a Structure

FND_ID_FLEX_SEGMENTSIt captures the information of Segments Each Segment is Uniquely identified by

bull APPLICATION_ID ndash Module Codebull ID_FLEX_CODE ndash Key Flexfield codebull ID_FLEX_NUM ndash Key flexfield structure numberbull SEG_NUM ndash Segment numberbull FLEX_VALUE_SET_ID ndash Flexfield value set identifier

FND_FLEX_VALUE_SETSThis table captures the information of each Segments Value Set Each Value Set is Uniquely identified by FLEX_VALUE_SET_ID as Foreign Key of FND_ID_FLEX_SEGMENTS TableFND_FLEX_VALUESThis table captures the information each Value codes of a Value Set of a Segment Each Value Code is uniquely identified by

bull FLEX_VALUE_SET_IDbull FLEX_VALUE_ID

FND_FLEX_VALUES_TLThis table captures the information of each Value Description of a Value Set of a Segment Each Value Description is uniquely identified by FLEX_VALUE_IDselect FIFAPPLICATION_ID FIFID_FLEX_CODE FIFID_FLEX_NAME FIFAPPLICATION_TABLE_NAME FIFDESCRIPTION FIFSID_FLEX_NUM FIFSID_FLEX_STRUCTURE_CODE FIFSESEGMENT_NAME FIFSESEGMENT_NUM FIFSEFLEX_VALUE_SET_IDfrom FND_ID_FLEXS FIF FND_ID_FLEX_STRUCTURES FIFS FND_ID_FLEX_SEGMENTS FIFSEwhere FIFAPPLICATION_ID = FIFSAPPLICATION_IDand FIFID_FLEX_CODE = FIFSID_FLEX_CODE

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register

Page 55: AOL Complete Reference

and FIFSEAPPLICATION_ID = FIFAPPLICATION_IDand FIFSEID_FLEX_CODE = FIFID_FLEX_CODEand FIFSEID_FLEX_NUM = FIFSID_FLEX_NUMand FIFID_FLEX_CODE LIKE GLand FIFID_FLEX_NAME LIKE Accounting Flexfield

Steps required to register a New Key Flexfield (KFF)1] Create a KFF Table in Module Specific Schema2] Create a Public Synonym in APPS Schema3] Register the Table with AOL ModuleGo to Application Developer gt Functions gt Application gt Database gt TableWe can also register a Table using Application DBA Data Definitions (AD_DD) Package from the Back Endprocedure register_table(p_appl_short_name in varchar2p_tab_name in varchar2p_tab_type in varchar2p_next_extent in number default 512p_pct_free in number default 10p_pct_used in number default 70)procedure register_column(p_appl_short_name in varchar2p_tab_name in varchar2p_col_name in varchar2p_col_seq in numberp_col_type in varchar2p_col_width in numberp_nullable in varchar2p_translate in varchar2p_precision in number default nullp_scale in number default null)You can also use the AD_DD API to delete the registrations of tables and columns from Oracle Application Object Library tables4] Register the KFF with AOL ModuleGo to Application Developer gt FlexField gt Key gt Register