Professional Documents
Culture Documents
Apps Tech Manual PDF
Apps Tech Manual PDF
ORACLEAPPLICATIONS
1. INTRODUCTION
ERP:ResourcePlanningwithinanEnterprise.ERPisatermthatcoverswholeProduct
line. ERP means integration of different module. Any business will greatly benefits by
adapting this feature because u can customize it or integrate it with other Packages
tosatisfyuniquerequirements.
BENEFITSOFERP: 1).FlowofInformationEffectively
2).MaintainingStandardizations
Q:
WhatisOracleApplications?
Ans: OracleApplicationsareanERPPackage.TheKeyFeatureoftheentireoracle
ApplicationmoduleisDataIntegration.
Master data is Integrated: All the application share common files of customers,
suppliers, employee, items and other entities that are used by multiple
applications.
TransactiondataisIntegrated:Oracleautomaticallybridgetransactionsfromone
systemtoanother.
2.
ORACLEAPPLICATIONS
Note:SSWASelfServiceWebArchitecture
Applications3TierArchitecture
Desktop Tier
Application Tier
Database Tier
Forms Server
Web
Browser
Reports Server
Database
Server
iAS Server
Concurrent Processing
Server
Discoverer Server
Administration Server
3.
PRODUCTDIRECTORYSTRUCTURE
WhenOracleApplicationsinstallsinamachineitcreatesabasedirectorywiththe
nameORACLE.Thisisthebasedirectoryforaccessingtheapplication.
OracleApplicationssuppliedinthreeflavors
1. ProductionOracleApplications:usedforimplementinginanyorganization.
2. VisionOracleApplications:usedforDemonstrationorTrainingpurpose.
3. TestOracleApplications:usedforR&Dpurpose
ProductDirectoryStructureofOracleApplications
ORACLE
Production OA
Vision OA
Test OA
PRODDB
VISDB
TESTDB
PRODORA
VISORA
TESTORA
PRODCOMM
VISCOMM
TESTCOMM
PRODDATA
VISDATA
TESTDATA
PRODAPPL
VISAPPL
TESTAPPL
VISDB:
ConsistsofOracle8i/Oracle9i/Oracle10gDatabaseexecutablefiles.
VISORA: Captures8.0.6/9iAS/10giASmiddlewareDatabaseexecutablefiles.
VISCOMM:Captures Control Script files, which are used to Start or Stop the
ApplicationServices.
VISDATA: Capturesall.DBFfiles.
VISAPPL: CapturesallModuleSpecificDirectoriesandSomeSpecialDirectories.
APPL_TOP(i.e.VISAPPL)DirectoryStructure
APPL_TOP
APPL_TOP = D:\ORACLE\VISAPPL
GL
11.5.0
AR
AP
Forms
US
Reports
US
BIN
LIB
SQL
HTML
LOG
OUT
Message
FND
AU
11.5.0
Forms
US
Resource
5
GL_TOP:(APPL_TOP/GL/11.5.0)isoneoftheModuleDirectoryofOracleApplications.
Itconsistsofareleasedirectory(i.e.11.5.0)underwhichForms,Reports,BIN,LIB,SQL,
etc.,
GL_TOP/11.5.0/Forms/USisformsdirectorytostoreall.FMX(Compiled)Formfilesofa
specificmodule.
USisalanguagespecificdirectory.
GL_TOP/11.5.0/BINwillcapturetheC,C++,PRO*C,SQL*LOADERetc.,files.
GL_TOP/11.5.0/LIBwillcaptureall.OBJfilesofC,C++orJAVACLASSfiles.
GL_TOP/11.5.0/Messagewillcaptureall.MSBmessagebodyfiles.
GL_TOP/11.5.0/LOGwillcaptureall.LOGfiles.
GL_TOP/11.5.0/OUTwillcaptureall.OUTfiles.
GL_TOP/11.5.0/SQLwillcaptureall.SQLscriptfiles.
GL_TOP/11.5.0/HTMLwillcaptureall.HTML,.HTMwebfiles.
GL_TOP/11.5.0/FNDisaSpecialDirectoryknownasApplicationObjectLibrary(AOL)
directory.ItisusedtocaptureallModulesApplicationExecutableFiles.
GL_TOP/11.5.0/AUisanApplicationUtility(AU)Directory.Itconsistsofaapplication
release SubDirectory, which consists of Forms and Resource directories. It is used to
storeall.FMBand.PLLandPL/SQLLibraryfiles.
GL_TOP/11.5.0/AU/11.5.0/Forms/USwillcapture.FMBFormfilesofallModules.
4.
DATAMODEL
WhenweinstallOracleDatabasebydefaultsystemwillcreatesSYSandSYSTEM
schemas. These consist of all Data Dictionary Tables. Like this if we install Oracle
ApplicationsSystemwillautomaticallycreatesschemasofallModules(i.e.GL,AR,AP,
etc.)withtherespectivemodulenameasUserandPassword.Alongwiththeseschemas
some special Schemas i.e. APPS, APPLSYS, APPLSYSPUB will be created for special
purpose.
APPLSYS/APPS
FND Foundation Tables
ALR Alert Tables
WF Work Flow Tables
AD Application database
APPLSYSPUB/PU
APPS/APPS
APPSSchema:ItisPublicSchema.Itconsistsofacollectionofpublicsynonymofall
theobjectsofalltheschemasintheApplicationdatabase.AlltheProcedures,Functions
andPackagescreatedmustbestoredinthisSchema.
APPLSYS Schema: This is a special Schema consists of the files starts with FND,
ALR,WFandAD.
Note:1.WhenwearechangingtheAPPSSchemapassword,firstwehavetochangein
thebackendforbothAPPSandAPPLSYSSchemas.
2.PasswordforbothAPPSandAPPLSYSshouldbesame.
3.ChangethepasswordofboththeSchemasinFrontEndandBackEnd.
4. Drop the Concurrent Manager Services and recreate the Concurrent Manager
ServicewiththePasswordasAPPSPassword.
5. RESPONSIBILITIESANDUSER
Menu:AmenuisacollectionofSubMenusandFunctions.
RequestGroup(RG):ItisacollectionofconcurrentPrograms.Itisusedtorequest
programsfromtheresponsibility.
Functions:Afunctionisapartofanapplicationsfunctionalitythatisregisteredunder
auniquenameforthepurposeofassigningitto,orexcludingitfrom,amenu(andby
extension,aresponsibility).
An Oracle Applications feature that lets you control user access to certain
functionsandwindows.Bydefault,accesstofunctionalityisnotrestricted;yoursystem
administrator customizes each responsibility at your site by including or excluding
functions and menus in the Responsibilities window. There are several types of
functions:formfunctions,subfunctions,andnonformfunctions.
Thesearetwotypesoffunctions
1 FormFunctions:areusedtosecureFormsfromtheresponsibilities.
2 NonFormFunctions:areusedtosecureLayoutItemswithintheForm.
AdvantagesofFormFunctions
IfyouwanttoopentheFormindifferentmodeswithoutcreatingthecopies,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
whiledesigningtheForm.
AmenucanbeassignedtomorethanoneResponsibility.Ifyouwanttorestrict
some of the Forms from a particular responsibility, we can include Form Function of
thoseFormsinMenuExclusionsoftheResponsibility.
PreDefinedResponsibilities
S.No
1
2
3
4
5
6
Module
ApplicationObjectlibrary
SystemAdministration
OracleGeneralLedger
OraclePublicSectorPayables
OracleReceivables
OracleAlerts
Responsibility
ApplicationDeveloper
SystemAdministrator
GeneralLedgerSuperUser
PayablesManager
ReceivablesManager
AlertsManager
HowtoCreateaResponsibility?
Step1:ConnecttoOracleApplicationwithAPPSADMIN/APPSADMINUser.
Step2:GotoApplicationAdministrator.
Step3:GotoSecuritythenResponsibilitythenDefine
Step4:EntertheDataintheopenedWindow.
Note:AboveInformationofResponsibilityisstoredinFND_RESPONSIBILITYTable.
10
HowtoCreateaUser?
Step1:ConnecttoOracleApplicationwithAPPSADMIN/APPSADMINUser.
Step2:GotoApplicationAdministrator.
Step3:GotoSecuritythenUserthenDefine
Step4:EntertheDataintheopenedWindow.
Note:AboveInformationofUserisstoredinFND_USERTable.
UserResponsibilitiesstoredinFND_USER_RESP_GROUPSTable.
11
6.
NEWMODULEDEVELOPMENT
StepsrequiredfordevelopingaNewModule?
1. RegistertheNewModulewithAOLmodule.
SavetheEntries.
2.CreateaSchema/UserfortheNewModuleandGrantRollstoitfromSQLPrompt.
Loginasapps/apps@vis.
SQL>CREATEUSERPPRSIDENTIFIDBYPPRS;
SQL>GRANTCONNECT,RESOURCETOPPRS;
SQL>
3.CreateproductDirectoryStructuretotheNewModuleatServerend.
\\Orafin8\d$\appl\pprs\11.5.0\forms\us
\\Orafin8\d$\appl\pprs\11.5.0\reports\us
\\Orafin8\d$\appl\pprs\11.5.0\bin
\\Orafin8\d$\appl\pprs\11.5.0\sqletc.,
4. Create the Form Using Form Builder with all the coding standards required
accordingtoOracleApplications.
5. CompiletheFormandCopy.FMXfileinModuleSpecific(New)Directory.
6. Copysome.fmxFormfilesfromanyexistingmodulestonewmoduledirectoryfor
registrationdemo.
7. RegistertheformwithApplicationObjectLibrary(AOL)Module.
ConnecttoAPPSTECH/APPSTECH
GotoApplicationDeveloper
12
Application
Form
Save&Close
8.CreateFormFunctionforalltheForm,whichareregisteredwithourmodule.
ConnecttoAPPSTECH/APPSTECH
GotoApplicationDeveloper
Application
Function
Save&Close
9. DefineamenuforournewmoduleusingAOLModule.
ConnecttoAPPSTECH/APPSTECH
13
GotoApplicationDeveloper
Application
Menu
10.AssigntherequiredFormFunctionstothemenus.
11.DefineDataGroup(DG)usingSystemAdministrationModule.
SystemAdministrator
Security
Oracle
DataGroup
14
11.DefineaResponsibilityforthenewmodule.
SystemAdministrator
Security
Responsibility
Define
12.AssignResponsibilitytotheUser.
SystemAdministrator
Security
User
Define
15
13.SetupthebasepathoftheNewModuleattheServerend.
PPRS_TOPisthebasepath
AtRun:regedit
CreateanewString
RenametheNewStringasPPRS_TOP
PPRS_TOP:\\Oracle\visappl\pprs\11.5.0
16
7.
TABLEREGISTRATION
Q:WhywehavetoregisteraTable?
Ans:TodefinetheSpecialObjectsatthetimeofdefinitionofaBusinessApplications.
SpecialObjectsareKeyFlexFields(KFF)andDescriptiveFlexFields(DFF)
InApplicationsTablesareclassifiedintothreecategories
1 TransactionDataTables:arenormaltables,whichareusedtostorethedata
inallthemodulesinwhichwecanperformanyDMLoperations.
2 SeedDataTables:Thedataforthesetablescreatedatthetimeofinstallation.
Therecordspresentinthesetablesarereadonly.
3 InterimDataTables:arethetemporarytables,whichareusedforvalidation
purpose. These tables are used when we are transferring the data from
externalapplicationstothesystemtables.
StepsRequiredforregisteringaTable
1.CreateaTableinModuleSpecificSchema.
ConnectasPPRS/PPRS@VIS
SQL>CREATETABLEPPRS_PARTS(
PART_CODENUMBER(5),
PART_NO VARCHAR2(50),
PART_NAMEVARCHAR2(100),
QPS NUMBER(3),
PPART_CODENUMBER(5));
2.CreateaPublicSynonyminAPPSSchema.
ConnecttoAPPS/APPS@VIS
SQL>CREATEPUBLICSYNONYMPPRS_PARTSFORPPRS_PARTS;
Note:PublicSynonymNameshouldbesameasTableName;
3.RegistertheTablewithAOLModule.
ConnecttoAPPSTECH/APPSTECH
ApplicationDeveloper
Functions
Application
Database
Table
17
TableRegistrationwithApplicationInterface(API)
WecanalsoregistertheTableusingApplicationDBADataDefinitions(AD_DD)
PackagefromtheBackEnd.YoucanalsousetheAD_DDAPItodeletetheregistrations
of tables and columns from Oracle Application Object Library tables. To alter a
registration you should first delete the registration, and then reregister the table or
column.Youshoulddeletethecolumnregistrationfirst,thenthetableregistration.
procedureregister_table(p_appl_short_nameinvarchar2,
p_tab_nameinvarchar2,p_tab_typeinvarchar2,
p_next_extentinnumberdefault512,p_pct_freeinnumberdefault10,
p_pct_usedinnumberdefault70);
procedureregister_column(p_appl_short_nameinvarchar2,
p_tab_nameinvarchar2,p_col_nameinvarchar2,
p_col_seqinnumber,p_col_typeinvarchar2,
p_col_widthinnumber,p_nullableinvarchar2,
p_translateinvarchar2,p_precisioninnumberdefaultnull,
p_scaleinnumberdefaultnull);
proceduredelete_table(p_appl_short_nameinvarchar2,p_tab_nameinvarchar2);
proceduredelete_column(p_appl_short_nameinvarchar2,
p_tab_nameinvarchar2,p_col_nameinvarchar2);
18
Note: Table can be register from Front End by Application Developer or Back End by
DatabaseAdministrator.
TypeofTableSuffixesandtheirmeaning
_TL
NoSuffix
_V
_VL
_All
19
ApplicationsStoragesTables
TableName
FND_APPLICATION
FND_FORM
FND_FORM_FUNCTIONS
FND_MENU
FND_MENU_ENTRIES
StoragePurpose
NewModuleInformation
FormsInformation
InformationofFunctionsofaForm
MenuInformation
List of Functions Assigned to the Menu
Information
FND_DATAGROUP
DataGroupInformation
FND_DATAGROUP_UNIT
ListofModulesAssignedtotheDataGroup
FND_RESPONSIBILITY
AllResponsibilityInformation
FND_RESP_GROUPS
Allresponsibilitygroupsinformation
FND_TABLES
AllTablesInformation
FND_COLUMNS
AllTableColumnsInformation
FND_USER
AllUsersInformation
FND_USER_RESP_GROUPS
AllUsersResponsibilityInformation
FND_ID_FLEXS
AllKeyFlexFieldsInformation
FND_ID_FLEX_STRUCTURES AllStructuresInformation
FND_ID_FLEX_SEGMENTS
AlltheSegmentsInformation
FND_FLEX_VALUE_SETS
EachSegmentsValueSetInformation
FND_FLEX_VALUES
EachValueCodesofaValueSetofaSegment
FND_FLEX_VALUE_TL
Each Value Description of a Value Set of a
Segment
20
8.
FLEXFIELDS
KEYFLEXFIELDS(KFF)
21
Q:HowmanyKFFaresuppliedwiththePackage?
Ans:Thereare31KFF.
S.No TypeofFlexField
Module
Table
1
AccountingFF
GL
GL_CODE_COMBINATION
2
JobFF
HR
PER_JOB_DEFINITIONS
3
PositionFF
HR
PER_POSITION
4
GradeFF
HR
PER_GRADE
5
LocationFF
FA
FA_LOCATION
6
AssetFF
FA
FA_KEYWORDS
7
SalesTaxFF
AR
AR_SALEX_TAX
8
TerritoryFF
AR
AR_TERRITORY
9
SystemItemsFF
INV
MTL_SYSTEM_ITEM
10 ItemCategoryFF
INV
MTL_ITEM_CATEGORY
.
31
AccountingCompanyKFFStructure
GGC
GM
Seg1
Company
VS1
1. Trucks
2. Cars
GSS
Seg2
Seg3
Department
Accounts
VS2
1. Sales
2. Finance
3.
VS3
1.
2.
3.
4.
5.
Seg1
Company
VS4
Seg2
Seg3
Production
Location
VS5
VS6
Seg4
Department
VS7
Seg4
Accounts
VS8
Cash
Bank
Rent
X
Y
CodeCombinationIDofKFFisGGC_GM_VS1_1
GGC
CompanyName
GM
BranchName
VS1
Segment1
Trucks
22
Value Set: is a collection of properties like Length, Data Type, Minimum Value,
MaximumValue,AlignmentandValueValidationetc.
FlexfieldsconsistsofStructures
StructuresconsistsofSegments
SegmentsconsistsofValueSet
ValueSetconsistsofParameters.
FND_ID_FLEXSTablecapturestheinformationofalltheKeyFlexFields.
APPL_ID
ColumnconsistsofApplicationID
ID_FLEX_CODE
ColumnKFFCode
Exampleof APPL_ID:AR,AP,GLetc.
ID_FLEX_CODE:AR#,AP#,GL#,etc.
STRUCTURES
ACCOUNTING
RECEIVABLE
GL#
101
201
S1
Code Descr
TM
202
102
S2
Code Descr
AP#
TTS
203
103
S3
Code Descr
TTC
101
301
S1
Code Descr
TMAP
302
S2
Code Descr
101
301
S1
Code Descr
APTC
302
S2
Code Descr
FND_ID_FLEX_STRUCTURESTablecapturestheinformationofallthestructures.
EachStructureisuniquelyidentifiedby
APPLICATION_ID(ModuleCode),
ID_FLEX_CODE(CodeofKFF)
ID_FLEX_NUM(NumberofaStructure)
FND_ID_FLEX_SEGMENTSTablecapturestheinformationofSegments.
EachSegmentisUniquelyidentifiedby
APPL_ID
ID_FLEX_CODE
ID_FLEX_NUM
SEG_NUM
FLEX_VALUE_SET_ID
23
FND_FLEX_VALUESTablecapturestheinformationeachValuecodesofaValueSet
ofaSegment.
EachValueCodeisuniquelyidentifiedby
FLEX_VALUE_SET_ID
FLEX_VALUE_ID
FND_FLEX_VALUE_TLTablecapturestheinformationofeachValueDescriptionofa
ValueSetofaSegment.
EachValueDescriptionisuniquelyidentifiedby
FLEX_VALUE_ID
FormtoAcceptKFF
Responsibility:R1(TM)/R2(TCS)
JournalForm
Journal:Date:
Currency:
Form
Application
UserFormName
Description
Name1
Function1
Name2
Function2
GL_CODE_COMBINATIONTable(MasterTable)
S1
S2
S3
S4
S5
.
StructureID CCID
1
1
1
TM
2001
TransactionTable(DetailsTable)
This Code is
generated by
SN
Date Debt
Credit
.
CCID
DataBase
1
1
1
2001
24
StepsrequiredtoregistrationofNewKeyFlexfield(KFF)
1. CreateaKFFTableinModuleSpecificSchema.
ConnecttoPPRS/PPRS@VIS
2. CreateaPublicSynonyminAPPSSchema.
ConnecttoAPPS/APPS@VIS
SQL>CREATEPUBLICSYNONYMPPRS_PARTSFORPPRS_PARTS;
3. RegistertheTablewithAOLModule.
PPRS_PARTSTablealreadyregistered.
4. RegistertheKFFwithAOLModule.
ConnecttoAPPSTECH/APPSTECH
GotoFlexFieldKeyRegistration
25
26
27
28
DESCRIPTIVEFLEXFIELDS(DFF)
DFF are used to capture the additional or extra Business information of the
organization.DFFareusedtoaddextraaccounts,thesearevarryfromonebusinessto
anotherbusiness.AllDFFcolumnsaredefinedasAttributeColumns.Allthesecolumns
aredefinedinthetransactiontableitself.Therearearound5000+DFFavailablewiththe
package.
DFFhavetwodifferenttypesofSegments
1. GlobalDFF
2. ContextSensitiveDFF
Q:HowtoknowthataformishavingDFF?
Ans:GotoHelpinMenuBar
Diagnostic
Examine
EnterOraclePassword:APPS
BlockName:$DescriptiveFlexfields(Changethefieldlikethis))
Field:PPRSFLEX
IftheFormhavingthebutton withsquarebrackets[]thenwecansaythatthe
formishavingDFF.AformcanhavemultipleDFFbutaBlockcanhaveonlyone
DFF.ToreferenceaDFFuseBlock_Name.DFF_Name.
Q:HowtoenableaDFF?
ToenableDFFswitchresponsibilityto
ApplicationDeveloper
FlexField
Descriptive
Segments
EnterTotle:PPRSDFF
ClickonSegmentButtonatthebottomofthePopUpWindow.
29
Example:
TableT1
Column1
Column2
Column3
Column4
..
Attributes,A1..A20
AttributeCategoryorContextColumnAC1,Ac2,Ac3,AC4.
FORM
Block1
Column1DFF1AC1AttributeA1..A5
Block2
Column2DFF2AC2AttributeA6..A15
Block3
Column3DFF3AC3AttributeA16..A20
WecanregistermorethanoneDFFonatable.HowmanynumberofDFFthatwe
wanttoregisteronatable,wemusthavethosemanynumberofattributecategoriesor
Contextcolumnsaretobeusedtogroupasetofattributecolumn.Theattributecategory
andattributecolumnsmappedwithonDFFcantbemappedwithotherDFF.
When we register a DFF, System internally generates the default Context field
value as global data elements (GDE). The values for Attribute Category column or
ContextColumnarenull,whenweareenablingthefieldsasglobaldataelements.
C1AC1A1..A20
Column
DFF
GlobalDataElementsA1,A2
INDIA
(A3..A4)
UK
(A3..A5)
US
(A3..A6)
CountryValueswillbestoredinAttributeCategoryColumn(OR)ContextColumn.We
can also define the field, which is enabled, as global data elements are common for all
theuserdefinedcontextfieldvalues.Thatisthereasontheattributecolumns,whichare
mappedwithglobaldataelements,arenotmappedwithuserdefineddataelements.
30
StepsrequiredforregisteringaDFF
1. CreateaDFFTableinModuleSpecificSchema.
ConnecttoPPRS/PPRS@VIS
SQL>ALTERTABELPPRS_PARTS
ADD(
Attribute1
Varchar2(150),
Attribute2
Varchar2(150),
Attribute3
Varchar2(150),
Attribute4
Varchar2(150),
Context Varchar2(25));
2. CreateaPublicSynonyminAPPSSchema.
ConnecttoAPPS/APPS@VIS
SQL>CREATEPUBLICSYNONYMPPRS_PARTSFORPPRS_PARTS;
3. RegistertheTablewithAOLModule.
PPRS_PARTSTablealreadyregistered.
6. RegistertheKFFwithAOLModule.
ConnecttoAPPSTECH/APPSTECH
GotoFlexField
Descriptive
Register
31
32
9.
NEWFORMDEVELOPMENT
ToenabletheendusertooperatetheFormsuserfriendlyweneedtostandardize
the Forms. To design or develop the form with Applications Standards, Package
providedaStandardFormcalledAPPSTAND.fmb
APPSTAND.fmb:isacollectionoftheentirestandardobjectGroupsusedintheOracle
Applications.FormshouldinheritthefollowingobjectGroupProperties
1. STAND_PC_AND_VA:ThisconsistsofWindows,Canvases,BlocksandItemsused
forPropertyClassesandVisualAttributes.
2. STAND_TOOLBAR:ThisconsistsofWindows,Canvases,BlocksandItemsusedfor
ToolBars.
4. STANDARD_FOLDER:ThisconsistsofWindows,Canvases,BlocksandItemsused
forDataRestrictionandChangingtheLayoutoftheFormatruntime.Andthisisnot
usedforCustomForms).
5. QUERY_FIND: This consists of Windows, Canvases, Blocks and Items used for
implementingfindwindowsorSearchmethods.
6. LIBRARIES:
FNDSQF.PLL:
is the collection of Procedures, Functions and Packages used to
defineSpecialObjectslikeKFF,DFF,FormFunctionsandNonForm
functions.
CUSTOM.PLL:
is the collection of Procedures, Functions and Packages used to
customize the Forms with out modifying the code of Oracle
Applications.
33
Note: The Builtins of CUSTOM.PLL are internally called by the Builtins of
APPCORE.PLLandtheBuiltinsofAPPCORE.PLLarecalledbyfewTriggerslike
WHENNEWFORMINSTANCE,
WHENNEWRECORDINSTANCE,
WHENNEWITEMINSTANCE,
PREBLOCK,
PRERECORD,
PREITEM
APPCORE2.PLL: isaDuplicate/ReplicaofAPPCORE.PLL.IthasthesameBuiltinsas
APPCORE.PLLandthisisusedinCUSTOME.PLL
GLOBE.PLL:
is used to change the regional settings of the Package with out
modifyingthecodeofApplications.GLOBE.PLLinternallycallsthe
BuiltinsofJE.PLL,JL.PLLandJA.PLLLibraries.
JE.PLL:
isusedtochangetheregionalsettingsofMiddleEastCountries.
JA.PLL:
isusedtochangetheregionalsettingsofAsiaPacificCountries.
JL.PLL:
isusedtochangetheregionalsettingsofLatinAmerica.
FORMTEMPLATE:ItisusedtodevelopthenewFormofaBusinessApplication.
1.
2.
3.
4.
TEMPLATE.fmbinheritsalltheObjectGroupsofAPPSTAND.fmb.
AttachesalltheLibraries.
AttachesStandardMenucalledFNDMENU.mmb.
CreatesFormlevelTriggers.SomeoftheseTriggersarereadonlyandsomeareread
and write. Read only triggers are marked with RED Colour and Read and Write
triggersaremarkedwithBLUEColour.
5. APPS_CUSTOMPackageisacollectionofOPEN_WINDOW(WNDINVARCHAR2)
and OPEN_WINDOW(WND IN VARCHAR2) Procedures. These are created by
defaultwhenweopentheTEMPLATE.fmbForm.
34
Example:Ifwewanttoopenawindowinthefollowingstructure.
FORM
BLOCK-1
ITEM-1
WHEN-NEW-ITEM-INSTANCE
ITEM-2
ITEM-3
WHEN-VALIDATE-ITEM
KEY-NEXT-ITEM
KEY-LIST-VALUE
BLOCK-2
ITEM-1
ITEM-2
BLOCK-3
BEGIN
IF(WND=W1)THEN
Statement1;
Statement2;
ELSIF(WND=W2)THEN
Statement1;
Statement2;
ELSIF(WND=W3)THEN
ELSE
ENDIF;
6. Creates Dummy BLOCKS with name Block Name, Detail Name, Dummy CANVAS
with the Name Block Name and Dummy WINDOW with the name Block Name.
PurposeofthesedummiesisonlytounderstandthecreationofBlocks,Canvasesand
WindowsinaForm.
35
NamingConventionstobefollowedintheFormsDevelopment
1.
2.
3.
4.
5.
6.
7.
8.
NameoftheFormModuleshouldbesameas.fmb.
NameoftheDataBlockshouldbesameasBaseTableName.
NameoftheCanvasandWindowissameasBlockname.
NameoftheLOVshouldbesameasItemName.
NameofthePackageshouldbesameasBlockName.
NameoftheProcedureshouldbesameasItemName.
NameoftheROWLOVshouldbesameasBlock_Name_QF.
NameoftheFND_WINDOWshouldbesameasBlock_Name_QF.
StepsRequiredtoDevelopingaNewForm
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Open the TEMPLATE.fmb Form from Form Builder and Save as with Module
specificformname.
Delete the default Blocks with names BLOCK_NAME and DETAIL_BLOCK,
CanvaswithnameBLOCK_NAMEandWindowwithnameBLOCK_NAME.
CreateanewWindowandassignWindowpropertyclasstoit.
CreateCanvasandassignCanvaspropertyclasstoit.
AssignCanvastoWindowandWindowtoCanvas.
Create Data Block using wizard and name it as Table Name. Assign Text Item
PropertyclasstoalltheItemsintheDataBlock.
ModifyPreFormTriggeratFormLevel.
ModifyAPP_CUSTOMPackage.
ChangeFormModuleLevelProperties.
Save and Compile the Form and copy the .FMX file in the Module specific
directory.
PerformalltheprerequisitestoregistertheForm.
a. RegistertheformwithAOLmodule.
b. Defineaformfunction
c. AssignformfunctiontotheMenu.
d. AssignthemenutotheResponsibility.
e. AssignResponsibilitytotheUser.
Note:CheckthefollowingattachmentswhenyouopentheTEMPLATE.fmbForm.
1. ChecktherequiredLibrariesattachedornot.
2. ChecktherequiredObjectGroupsattachedornot.
3. ChecktherequiredVisualAttributesattachedornot.
4. ChecktherequiredPropertyClassesattachedornot.
5. ChecktherequiredFormLevelTriggerscreatedornot.
36
10. DEFININGCALENDARS
Calendars are special objects are used to select the date value in userfriendly
manner.WhenyounavigatetoadatefielditdisplaysanLOVicon.
TheCalendarletsyousatisfythefollowingbusinessneeds:
Representdatesandtimegraphicallysothatyoucanmakeaquickdateandtime
selectionwithoutadditionaltyping.
Selectonlythosedatesordaterangesthatareappropriateforthecurrentfield.
YoucanusetheCalendarwindow,asshowninFigure31,tohelpyouenteradate.
CalendarforDateSelection
CalendarforDateandtimeSelection
StepsrequiredtodefiningtheCalendar
1.
Changethefollowingpropertiesofthedateitem
a. ChangetheSubClasstoText_Item_DatepropertyClass.
b. LOVEnableListLamp
c. ValidatefromlistpropertysettoNO.
Note: Enable List Lamp is a dummy LOV, which is going to come with
TEMPLATE.fmb. The record Group associated with this LOV is SELECT
NULL FROM DUAL; we can use this LOV whenever we want to define
someSpecialObjectsontheTextItem.
37
2.
3.
4.
CreateKEYLISTVALTriggeratItemLevel.
Date:
ChangethePropertiesofdatefieldas
1. Text_Item_Date
2. Enable_List_Lamp
3. Key_ListvalTrigger
WriteCode:CALENDAR.SHOW;
SaveandCompiletheForm.
PerformalltheFormregistrationprocess.
38
11. WHOCOLUMNS
WHOcolumnsareusedtotracktheinformationupdatedorinsertedbytheusers
against the tables. FND_STANDARD package is used for this purpose.
FND_STANDARD.SET_WHOProcedureisusedtoupdatetheWHOcolumnsinaTable
whenaDMLoperations(i.e.INSERT,UPDATE)performed.
StepsrequiredtoTrackWHOInformationinourform
1.
ALTERthetablebyaddingWHOcolumnsinthetable.
2.
OpenTEMPLATE.fmbinformBuilder.
3.
Performalltheprerequisitestodevelopaform.
4.
IncludealltheWHOcolumnsintheDataBlockwithNULLCanvas.
5.
CallFND_STAND.SET_WHOprocedureinPreInsertandPreUpdatetriggers
atBlockLevel.
6.
SaveandCompiletheForm.
7.
Performalltheprerequisitestoregistertheform
Note:1.WHOColumnsneednotregisterwiththetableregistrationoption.
2.TableregistrationwillbedoneonlyforKFFandDFFcolumns.
3.ForFormdevelopmenttableregistrationsnotrequired.
ToShowtheModuleFormDirectoryPath
1. InPREFORMTriggerchangethemodulenamefromFNDtospecificmodule
shortname(i.e.EX,INC,PPR,etc.,).
2. SaveandCompiletheform.
39
12. NONFORMFUNCTIONS
Nonformfunctions(subfunctions)arealsoknownasLayoutItems.Nonformfunctions
allowaccesstoaparticularsubsetofformfunctionalityfromthismenu.
Q:
Howthefunctionsecurityworks?
STRUCTURES
AP
(102)
GL
(101)
R1
(201)
M1
(301)
RG
(302)
F1
(401)
F1
(401)
F1
(401)
F1
(401)
R2
(202)
R3
(203)
R1
(201)
AR
(103)
R2
(202)
R1
(201)
DG
(303)
F1
(401)
F1
(401)
40
DetailsoftheaboveStructure
GL,AR,AP
areApplicationUsersinformationstoredinFND_USERS
101,102,103
areApplication_IDsinformationstoredinFND_APPLICATIONS
R1,R2,R3
M1,RG,DG
areResponsibilitiesinformationstoredin
FND_RESPONSIBILITY
areResponsibility_IDsinformationstoredin
FND_RESP_GROUPS
areMenusinformationstoredinFND_MENUES
301,302,303
areMenu_IDinformationstoredinFND_MENU_ENTRIES
F1,F2,F3,M2
informationstoredinFND_FORM_FUNCTIONS
201,202,203
StepsRequiredForCodingNonFormfunctions
1. OpenTEMPLATE.fmbinFormBuilder.
2. PerformalltheprerequisitestodevelopaForm.
3. CreatethePUSHBUTTONinthedataBlockandchangethefollowing
properties.
Name
:
BOOK
SubClass
:
BUTTON
Label
:
BOOK
Canvas
:
CanvasName
4. CreateaNonFormFunctionforthisLayoutIteminAOLModule.
5. AssignthisNonFormFunctiontotheMenuleavingthepromptempty.
6. ModifyPREFORMTriggeratFormLevel.
IFFND_FUNCTION.TEST(NON_FORM_FUNCTION_NAME)THEN
/*RetrievesFunctionID*/
APP_ITEM_PROPERTY.SET_PROPERTY(EX_ORDERS.BOOK,
ENABLED,PROPERTY_ON);
ELSE
APP_ITEM_PROPERTY.SET_PROPERTY(EX_ORDERS.BOOK,
ENABLED,PROPERTY_OFF);
ENDIF;
7. SaveandCompiletheForm.
8. Performalltheprerequisitestoregistertheform.
41
13. SEARCHMETHODS
TherearetwosearchmethodsavailablewithAPPSPackage
1. ROWLOVTypeSearchMethod.
2. FINDWINDOWTypeSearchMethod.
ToOpenaSearchWindow
GotoMenuBar
View
Find
1.
ROWLOV
ItisusedtosearcharecordbasedonPrimaryKeyColumn.
StepsRequiredtoImplementROWLOV
1. OpenForminFormBuilder.
2. Performalltheprerequisitestodeveloptheform
3. Create a user defined Parameter and change the Data Type and width of the
column,sameasPrimaryKeyColumn.
4. Create a LOV using wizard and assign the return value of the LOV to the
Parameter.
5. ROWLOVisbasedonRecordGroup.
6. SELECTOrder_No,CustomerFROMEx_Orders;
P_Order_No(Parameter_Name)
LookUpReturnItem
7. CreateQUERY_FINDuserdefinedTriggeratBlockLevel.
Note:LOVNameshouldbeBlock_Name_QF
Trigger:QUERY_FIND(UserDefinedTrigger)
APPS_FIND.QUERY_FIND(LOV);
IFQUERY_FINDISNOTNULLTHEN
ENDIF;
IFG_QUERY_FIND:=TRUETHEN
Execute_Query;
ENDIF;
8.CreatePRE_QUERYTriggeratBlockLevel.
42
IFPARAMETER.G_QUERY_FIND=TRUETHEN
:EX_ORDERS.ORDER_NO:=:PARAMETER.P_ORDER_NO;
:PARAMETER.G_QUERY_FIND:=FALSE;
ENDIF;
10. Save and Compile the form and copy .fmx file in to module specific forms
directory.
2.
FINDWINDOWS
QUERY_FIND Consists of
WINDOW (Default Name is QUERY_FIND)
CANVAS (Default Name is QUERY_FIND)
BLOCK (Default Name is QUERY_FIND)
KEY_NXTBLK (Block Level trigger)
CLEAR (Button Item) Trigger
WHEN_BUTTON_PRESSED
APP_FIND.FIND (Results_Block_Name);
StepsRequiredToCreateaFINDWINDOW
43
1
OpenTEMPLATE.fmbforminFormBuilder.
Performalltheprerequisitestodeveloptheform.
OpenAPPSTAND.fmbforminFormBuilder.
OpenQUERY_FINDObjectGroupfromAPPSTAND.fmbtoTEMPLATE.fmb.
RenameQUERY_FINDWindow,CanvasandBlocknameswiththenameofthe
ResultsBlockname(i.e.EX_ORDERS)andQFsuffix
Note:NameoftheQUERY_FINDlookslikeEX_ORDERS_QF.
6
ModifytheFIND_BLOCKbyaddingtheTextItemsaspertherequirement.
ModifythecodinginKEYNXTBLKtriggeratBlockLevel.
APP_FIND.FIND(Results_Block_Name);
APP_FIND.FIND(Results_Block_Name);
10
APP_FIND.FIND(Results_Block_Name);
11
CreateQUERY_FINDuserdefinedtriggeratResultsBlockLevel.
APP_FIND.FIND(Results_Window_Name,Find_Window_Name,
Find_Block_Name);
12
13
CreatePREQUERYTriggeratResultsBlockLevel.
IF:PARAMETER.G_QUERY_FIND=TRUETHEN
COPY(:FIND_BLOCK.ITEM_NAME1,RESULTS_BLOCK,ITEM_NAME1);
COPY(:FIND_BLOCK.ITEM_NAME2,RESULTS_BLOCK,ITEM_NAME2);
COPY(:FIND_BLOCK.ITEM_NAME3,RESULTS_BLOCK,ITEM_NAME3);
APP_FIND.QUERY_FIND(:FIND_BLOCK.START_DATE,
:FIND_BLOCK.END_DATE,RESULTS_BLOCK.ORDER_DATE);
ENDIF;
14
Save and Compile the form and copy .fmx file in to module specific forms
directory.
15
Performalltheprerequisitestoregistertheform.
44
Note:APP_FIND.QUERY_RANGE(:Query_Find_Block_Name.START_DATE,
:Query_Find_Block_Name.END_DATE,Results_Block_Name.Order_Date);
This code is to be written in PREQUERY Trigger at Results Block Level and is
usedtosearchthevaluesbasedontherangeofvalues.
StepsRequiredToInvokeDescriptiveFlexFields(DFF)
1
CreateaDFFTableinModuleSpecificSchema.
CreateaPublicSynonyminAPPSSchema.
RegistertheTablewithAOLModule.
RegisterDFFwithAOLModule.
OpenTEMPLATE.fmbForminFormBuilder.
Performalltheprerequisitestodeveloptheform.
IncludealltheDFFcolumnsinDataBlockwithNULLCanvas.
CreateaTextItemintheDataBlockandchangethefollowingproperties.
10
11
12
Name
:
DFF
SubClass
:
Text_Item_Desc_Felx
DatabaseItem
:
NO
LOV
:
Enable_List_Lamp
ValidateFromList :
NO
Canvas
:
Canvas_Name
CreateaPackageSpecificationinProgramUnitwithaDFFProcedureandthe
nameofthepackageissameasBlockName.
PROCEDUREDFF(EVENTINVARCHAR2);
CreatePackageBodyinProgramUnit.
PROCEDUREDFF(EVENTINVARCHAR2)IS
BEGIN
IFEVENT=WHWNNEWFORMINSTANCETHEN
FIND_DESCR_FLEX.DEFINE(EX_ORDERS,DFF,EX,EXDFF);
FIND_DESCR_FLEX.DEFINE(Block_Name,Item_Name,
Application_Short_Name,Name_Of_DFF);
ENDIF;
END;
45
13
14
Note:FND_FLEX.EVENTisacommonBuiltInusedtoinvokeDFFandKFF.
Save and Compile the form and copy .fmx file in to module specific forms
directory.
Performalltheprerequisitestoregistertheform.
ToEnabletheDFF
GotoFlexField
Descriptive
Segments
To see the Enable DFF
Go to Forms
Click on DFF Button
Open the DFF Window with Invoked Fields
StepsRequiredInvokeKeyFlexFieldsfromtheForm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CreateaKFFTableinModuleSpecificSchema.
CreateaPublicSynonyminAPPSSchema.
RegistertheTablewithAOLModule.
RegisterKFFwithAOLModule.
Note:WheneverweregisteraKFF,SysteminternallygeneratesaStructurewith
thesamenameasTitleoftheKFFandtheStructure_ID.
CreatetheStructureofKFF.
AssociateSegmentstotheStructure.
DefineValueSets.
AssignValueSetstoSegments.
DefineValuestoeachSegmentbasedonValueSets.
OpenTEMPLATE.fmbForminFormBuilder.
Performalltheprerequisitestodeveloptheform.
IncludealltheKFFColumnsinDataBlockwithNULLCanvas.
CreateaTextItemintheDataBlockandchangethefollowingproperties.
Name
:
KFF
SubClass
:
Text_Item
DatabaseItem
:
NO
LOV
:
Enable_List_Lamp
ValidateFromList :
NO
Canvas
:
Canvas_Name
CreateaPackageSpecificationinProgramUnitwithaKFFProcedureandthe
nameofthepackageissameasBlockName.
PROCEDUREKFF(EVENTINVARCHAR2);
46
15
16
17
18
19
CreatePackageBodyinProgramUnit.
PROCEDUREKFF(EVENTINVARCHAR2)IS
BEGIN
IFEVENT=WHWNNEWFORMINSTANCETHEN
FIND_DESCR_FLEX.DEFINE(EX_ORDERS,KFF,EX,
Code_Of_KFF,Structure_Code_No);
FIND_DESCR_FLEX.DEFINE(Block_Name,Item_Name,
Application_Short_Name,Code_Of_KFF,Structure_Code_No);
ENDIF;
END;
47
14. PROFILES
Profiles are used to determine the behavior of Oracle Application Forms and
Programs. The registration information of all the users will be stored in
FND_PROFILES_OPTIONtable.ThedictionaryofalltheProfileOptionsismaintained
byAOLmodule.TosetthevaluesoftheProfileOptions,weuseSystemAdministrator
Module. Profile Options are used to pass the values to the variables declared in our
forms and programs, by which we can determine the behavior of Oracle Application
Forms.
Note:Thereare5316typesofprofilesoptionsaregoingtocomewiththepackage.
EachProfileOptionhasaccessat3levels.
1 UserAccessLevel.
2 ProgramAccessLevel.
3 SystemAdministratorLevel
USER LEVEL: If the Profile is having access at this level any front end login user can
changethevaluesoftheProfileOptions.
Main Menu
Edit
References
Profiles
PROGRAM LEVEL: If the Profile is having access at Program Level then we can use
theminourPrograms.
SYSTEMADMINISTRATORLEVEL:IftheProfileishavingaccessatthislevelthenwe
canuseProfileOptionsatthefollowingfoursublevels.
1 SITELevel
2 APPLICATIONLevel
3 RESPONSIBILITYLevel
4 USERLevel
SITELEVEL:SiteisacollectionofModules.AModuleisacollectionofResponsibilities.
Responsibilityisassignedtodifferentusers.
48
If we set the Profile Options at Site level then these Profile Options get
affected to all the Forms and Programs of all the Modules, which are
accessedfromoursite.
APPLICATION LEVEL: If we set the Profile Options at this level then the Profile
Optionsgetaffectedtoalltheformsofaparticularmodule.
RESPONSIBILITY LEVEL: If we set the Profile Options at this level then the Profile
OptionsgetaffectedtoalltheFormsandPrograms,whichareassignedtoa
particularResponsibility.
USERLEVEL:WhenwesettheProfileOptionsatthislevelthentheProfileOptionsget
affectedtoalltheFormsandProgramsofalltheResponsibilities,whichare
assignedtoaparticularUser.
WhenwesettheProfileOptionsatallthe4levelthen
1. UserLevelwilloverwriteResponsibilityLevel
2. ResponsibilityLevelwilloverwritetheApplicationLevel
3. ApplicationLevelwilloverwritetheSiteLevel
The BuiltIn that is used to get the value of the Profile Option is
FND_PROFILE.GET,whichtakestwoargumentsi.e.NameoftheProfileOptionandthe
OutputVariable.ThisBuiltInfirstsearchesforthevalueatUserLevelanditwillgetthe
USER_ID, RESPONSIBILITY_ID and APPLICATION_ID of Form where the Form is
called.
Site
GL
R1
R2
Site Level
AR
R3
User-1
R4
Application Level
AP
R5
R6
User-2
R7
Responsibility Level
User Level
49
WhenwecalltheBuiltIn,itwillfirstsearchesatUserLevel
1
IfthevalueisnotfoundatUserLevelthenitwillsearchatResponsibilityLevel.
IfthevalueisnotfoundatResponsibilityLevelthenitwillsearchatApplication
Level.
IfthevalueisnotfoundatApplicationlevelthenitwillsearchatSiteLevel.This
isthedefaultlevelofProfileOption.
Q: HowtosetthevaluesforexistingProfileOptions?
Sys.Admin
Security
User
Define
Password Length can be changed by
Profile Option.
BuiltIntochangethelengthofthepasswordiscalledSIGNONPasswordLength.
Note: Whenever we set the Profile Option at Site Level, we have to relogin into
Applications.
ThedifferentSignonAuditAccountsare
NONE
USER
RESPONSIBILITYand
FORM.
Q: How to know the WHO the users are currently connected to the
ServerforAuditAccounts?
Sys.Admin
Security
Monitor
FORM
LOVbasedonRecordGroup,RecordGroupBasedonSelectStatement.
50
ProfileswillbechangedonthebasisofProfileOptionsRecordGroup.
Profile ProfileType
Status
P1
NoLOV
SQLValidationisnotrequired
P2
Static/Fixed
SQLValidationisrequired
Values
DefinedinFND_LOOKUPSTable
P3
Variable
SQLValidationisrequired
Validationisbasedonanytable.
Stepsrequiredcreatingaprofileontables
1. Defineaprofile.
2. Settinganewprofile.
3. AddingcodeintoFormsTrigger.
51
15. CUSTOMIZATIONOFFORMS
CUSTOM.PLL is used to customize the forms with out modifying the code of Oracle
Applications. There is only one CUSTOM.PLL exists for all the Forms in Oracle
Applications. CUSTOM.PLL is going to be in use when ever we start Form Server
Service.InCUSTOM.PLLwehaveaPackagebynameCUSTOM.Underthispackagewe
havethebuiltinsasZOOMAVAILABLE,EVENTandSTYLE.
EVENT:isaprocedurewhichisusedtohandlespecificeventsinwhichwearegoingto
addourcustomcode.Themaineventsthatwecanhandlewiththisprocedureare
WHENNEWFORMINSTANCETrigger
WHENNEWBLOCKINSTANCETrigger
WHENNEWRECORDINSTANCETrigger
WHENNEWITEMINSTANCETrigger
WHENVALIDATERECORDTrigger
PREFORMTrigger
POSTFORMTrigger
Allthesetriggers,whicharecreatedatformlevel,whichareidentifiedwithblue
colors.EventprocedurebydefaultperformsNULL.
STYLE:isafunction.Itreturnsanintegerrangingfrom1to4
1
indicate
BEFORE
2
indicate
AFTER
3
indicate
OVERWRITE
4
indicate
STANDARD
TheseareModuleSpecificevents.ThebuiltinsofCUSTOM.PLLarecalledbythe
builtins of APPCORE.PLL in all the form level triggers which are going to come with
TEMPLATE.fmbform.
CUSTOM.PLL(LibraryName)
CUSTOM(PackageName)
EVENT(ProcedureName)
Wheneverwecreateordevelopaforminapplicationsthesearesomeformlevel
triggers, which will be created, and in all the form level triggers builtins of
52
APPCORE.PLLarecalled.ThebuiltinsofAPPCORE.PLLaregoingtocallthebuiltins
ofCUSTOM.PLL.
RestrictionsinCUSTOM.PLL
1. WeshouldnotattachandcallanybuiltinsofAPPCORE.PLLinCUSTOM.PLLto
avoidrecursion.InsteadwecanuseAPPCORE2.PLLinCUSTOM.PLL.
2. APPCORE2.PLLisaduplicateofAPPCORE.PLL.AllthebuiltinsofAPPCORE2
aresuffixedwith2.
3. We cant use SQL statements directly in CUSTOM.PLL. In order to use SQL
statementswecanmakeuseofPackagesandProcedures.
Note:1.Togettheinformationaboutcurrentformnameinuse
Gotohelpinmainmenu
OpenOracleApplications
2.TogettheBlockNameandItemNameofthecurrentform
Gotohelpinmainmenu
Diagnostic
Examine
HowtoImplementZOOMAvailability?
1. Firstidentifycallingformandcalledformdetails.
2. Opencalledforminformbuilder.
3. Createaparameter.
4. ModifyWHENNEWINSTANCEtriggeratformlevel.
IF:Parameter.P_Vendor_NameISNOTNULLTHEN
GO_BLOCK(VNDR);
DO_KEY(EXECUTE_QUERY):
:Parameter.P_Vendor_Name:=NULL;
ELSE
/*ExistingStatements*/
ENDIF;
5. ModifyPREQUERYtriggeratBlocklevel.
6. SaveandCompiletheformandcopy.fmxfileinmodulespecificdirectory.
Note:BydefaultZOOMoptionintheMenubarisdisabledforalltheForms.
7. OpentheCUSTOM.PLLlibraryinOracleFormBuilder.
8. ModifythecodeinZOOM_AVAILABLEFunction.
53
FORM_NAME:=NAME_IN(SYSTEM.CURRENT_FORM);
BLOCK_NAME:=NAME_IN(SYSTEM.CURSOR_BLOCK);
BEGIN
IF(FORM_NAME=POXPOEPOAND
BLOCK_NAME=PO_HEADERS)THEN
RETURNTRUE;
ELSE
RETURNFALSE;
ENDIF;
9. HandleZOOMEventinEVENTProcedureofCUSTOM.PLL.
Builtins of calling or Opened Form are CALL_FORM, OPEN_FORM and
NEW_FORM.
FND_FUNCTION.EXECUTE(FUNCTION_NAME=,
OPEN_FORM=Y,
SESSION_FLAG=N,
OTHER_PARAMETERS=P_VENDOR_NAME);
54
16. CONCURRENTPROCESSING(CP)
ConcurrentProgrammingisaprocessingrequestssimultaneouslyandproducing
differentresults.DifferenttypesofprogramssupportedbyoracleapplicationsareOracle
Reports,PL/SQL,JAVA,JAVAConcurrentProcess,SQLScripts,SQL*Loader,PRO*C,
C,C++,HOSTetc.
ReportsServerstoresOracleReports
DatabaseServerstoresJAVA,C,etc.
ConcurrentManagerServerStoresPro*C,Pro*Cobol,etc.
Columnsofthistableare Request_ID
User
Program
Executable
Arguments
PhasePending,Running,Completed
StatusStandby,Normal,Errors
(or) Normal,Paused,WarningsNormal
Whenever we submit a program SRS Form first the request information goes to
InternalConcurrentManager.
InternalConcurrentManagerhastwocomponents
1. ResponseComponent
2. IdentificationComponent
ResponsecomponentgeneratesauniqueRequest_IDforeachprogramsubmittedfor
SRS form and updates the request information in FND_CONCURRENT_REQUEST
table,then forwardstherequest toIdentification component. Identification Component
55
searchesfortheprograminFND_CONCURRENT_REQUESTtableandexecutesoutput
formatandoutputstylebasedontheexecutablenameitidentifiestheactualexecutable
name,executionmethodandmodulename.Basedonthemodulenameandexecutable
methodapplicationidentifiestheexecutableinModulespecificdirectoryandmapsthe
parametervaluestotheexecutablefromFND_CONCURRENT_REQUESTandupdates
the program information in FND_CONCURRENT_PROCESSES. Once the process is
completeditgeneratesthe.logand.outfilesinmodulespecificdirectory.
Note:InFormsFormFunctionsareusedtopasstheparametersatruntime,whereasin
reportsprogramsareusedtosetthedifferentoutputformats.
StepsRequiredforRegisteringaSimpleReport
1.
2.
3.
4.
5.
6.
7.
8.
CreateaReportusingReportBuilder.
Compileandcopy.RDFfileinmodulespecificdirectory.
RegistertheexecutablewithSystemAdministratorModule.
DefinetheConcurrentProgram.
AssigntheexecutabletoConcurrentProgram.
AssigntheConcurrentProgramtoRequestGroup.
AssigntheRequestGrouptotheResponsibility.
AssigntheResponsibilitytotheUser.
FND_EXECUTABLES Table captures the information of all the executables, which are
registered.
Q:
HowtoRuntheReportfromOracleApplications?
Ans: OpenVIEWinmainmenu
Requests
Submitarequestbypressingthebutton
Q:WhatarethedifferenttypesofparametersavailableinReports?
Ans: Therearetwotypesofparameters
1. BINDPARAMETERS
2. LEXICALPARAMETERS.
Theparameters,whichwecreateatdesigntime,arecalledActualParameters.The
parameters defined at concurrent program level are called Formal Parameters.
Validationofaparameteristobedonetotheformalparameters.
56
RegisteringParametricReports
1. CreateaReportusingReportBuilderwithparameters.
2. Compileandcopy.RDFfileinmodulespecificdirectory.
3. RegistertheexecutablewithSystemAdministratorModule.
4. DefinetheValuesettovalidatetheparameters.
5. DefinetheConcurrentProgram.
6. AssigntheexecutabletoConcurrentProgram.
7. DefineParameters.
8. AssignValueSettotheParameters.
9. AssignbindparameterofyourstotheTOKEN.
Note: Token is used to map bind parameters with the formal parameters of the
ConcurrentProgram.
10. AssigntheConcurrentProgramtoRequestGroup.
11. AssigntheRequestGrouptotheResponsibility.
12. AssigntheResponsibilitytotheUser.
ToreferencethevaluesofPriorParametersofaparticularprogramintothevaluesof
other parameter is based on the Value Set. The value of the 1st parameter is to be
referencedinwhereclauseofthe2ndParameter.
WHEREDeptno=:$FLEX$.First_Parameter
Note:1.TocallSRSFormfromourownMenuregisterSRSForm(FNDRSRUN)in
ourModule.
2.WecanassignonlyoneRequestGroupforaResponsibility.
4.ForeachRequestGroupwecancreateafunction.
To run the programs of the Request Group from the Responsibility it is not
compulsory to assign the Request Group to the Responsibility. We can also assign a
Form function to the Menu it is defined on FNDRSRUN with Request Group code,
RequestGroupapplicationshortnameandTitleasparameters.
57
17. FLEXFIELDFEPORTS
USEREXITS:Thesearethe3rdpartyprograms(i.e.Java,Pro*C,etc.)thatwecanlink
withourreportsto performaparticular task.Wecanlink3rdpartyprogramswithour
reports with SRW.USER_EXIT(Name_of_the_User_Exit). We can reference the input
parametersinuserexitswithSRW.REFERENCE(:input_parameters).
FNDSRWINIT: ThisUserExitisusedtoinitializethereportinthememory.
FNDSRWEXIT: This User Exit is used to release the memory occupied by the
program.
ThisUserExitisusedtotailortheSELECTstatementwhichreturns
FNDFLEXSQL:
astring.ItisaconcatenationoftheSegmentcolumnsofaparticularstructure.
Parameters:
ApplicationShortName:SQLGL
Code:
GL#
Number:
P_STRUCTURE_ID
Output:
P_FLEXDATA
Note: Bind Parameters can be mapped with only one column where as Lexical
Parametersisaplaceholdercolumnwhichcanbeusedtosubstitutestringinthe
parameter.
Example:
SELECTP_FlexDataCflexData,Journal_Name,,,
FROMKFF,TRANS
WHEREKFF.CCID=TRANS.CCID
ANDSTRUCT_ID=:P_STRUCT_ID;
ApplicationShortName
: SQLGL
Code
: GL#
Number
: P_STRUCTURE_ID
Data
: C_FLEXDATA
Description
: :C_DESC
ItconcatenatestheValueSetIDsofSegments.
58
StepsRequiredtocreateaSimpleFlexFieldReport
1.
OpentheReportinReportBuilder.
2.
CreateUserdefinedparametersasperourrequirement.
Name
Data
Width Initial Notes
Type
Value
F_CONC_REQUEST_ID Number 15
0
AlwaysCreate
P_FLEXDATA
Character 600
Long Cumulativewidthmore
String thanexpectedwidth
requiredtoholdthe
data(i.e.concatenated
valueofSegments1..n)
P_STRUCT_NUM
Character 15
101
ContainsStructure
Number
3.
4.
5.
CallFNDSRWINITUserExitinBeforeReportTrigger.
BEGIN
SRW.USER_EXIT(FNDSRWINIT);
RETURN(TRUE);
END;
CallFNDSRWEXITUserExitinAfterReporttrigger.
BEGIN
SRW.USER_EXIT(FNDSRWEXIT);
RETURN(TRUE);
END;
CallFNDFLEXSQLUserExitinBeforeReportTrigger.
BEGIN
SRW.USER_EXIT(FNDSRWEXIT);
BEGIN
SRW.REFERENCE(:P_STRUCT_NUM);
SRW.USER_EXIT(FNDFLEXSQL
APPL_SHORT_NAME=SQLGL
CODE=GL#
NUM=:P_STRUCT_NUM
OUTPUT=:P_FLEXDATA
MODE=SELECT
DISPLAY=ALL);
END;
RETURN(TRUE);
59
6.
7.
8.
9.
END;
Note: When we are calling multiple user exits in a trigger we should call these
UserExitsinseparateBlocks(i.e.BEGIN..END).
CreateareportqueryintheDataModel.
SELECT&P_FLEXDATAC_FLEXDATA
FROMGL_CODE_COMBINATION
WHERECHART_OF_ACCOUNT_ID=&P_STRUCT_NUM;
CreatetwoFormulaColumnsC_VALUEandC_DESC_ALL.
CallFNDFLEXIDVALinthePL/SQLformulaofCVALUEtoreferenceValue
CodeCombination.
To retrieve the concatenated flexfield segment values and description you
incorporatetheAOLuserexitsinthesecolumns
BEGIN
SRW.REFERENCE(:C_FLEXDATA);
SRW.FND(:P_STRUCT_NUM);
SRW.USER_EXIT(FNDFLEX_ID_VAL
APPL_SHORT_NAME=SQLGL
CODE=GL#
NUM=:P_STRUCT_NUM
OUTPUT=:P_FLEXDATA
VALUE=:C_VALUE
DISPLAY=ALL);
RETURN(:C_VALUE);
END;
SRW.REFERENCE(:C_FLEXDATA);
SRW.FND(:P_STRUCT_NUM);
SRW.USER_EXIT(FNDFLEX_ID_VAL
APPL_SHORT_NAME=SQLGL
CODE=GL#
NUM=:P_STRUCT_NUM
OUTPUT=:P_FLEXDATA
DESCRIPTION=:C_DESC_ALL
DISPLAY=ALL);
RETURN(:C_DESC_ALL);
END;
60
10.
RunthereportwithdefaultLayout.
11.
Compileandcopy.RDFinmodulespecificdirectory.
12.
Performalltheprerequisitestoregisterthereport.
SystemAdministrator
Concurrent
Program
Executable
Note:AlltheFNDTablesarestoredinApplicationObjectLibrary(AOL).
61
18. QUALIFIERS
QualifiersareusedtoidentifytheSegmentswithspecificPropertyandthevalueofthe
Segmentswhiledesigningthereports.Qualifiersareclassifiedintotwocategories.
1. FlexFieldQualifiers(FFQs)
2. SegmentQualifiers(SQs)
FlexFieldQualifiers(FFQs):areusedtoassignaspecificpropertytotheSegment
Qualifier. These are based on Key Flex Fields (KFF). FFQs are varry from one KFF to
anotherKFFanditisnotcompulsorythatalltheKFFshouldhaveFFQs.
Note:YoumustdefineFlexfieldQualifierbeforeyoudefineSegmentQualifier.
ForexampleaccordingtoAccountingFlexFields
1. BalancingSegmentProperty(UserName)
GL_BALANCING(ActualName)
a. GlobalFlexfieldQualifier:appliestoallsegments.
b. UniqueFlexfieldQualifier:appliestoonlyoneSegment.
c. RequiredFlexfieldQualifier:appliestoatleastoneSegment.
WriteCodebeforeExecutionoftheReport
FNDFLEXSQL
APPL_SHORT_NAME=SQLGL
CODE=GL#
NUM=P_STRUCT_NUM
OUTPUT=:P_COMPANY
MODE=SELECT
DISPLAY=GL_BALANCING
2. NaturalAccountingSegmentProperty(UserName)
GL_ACCOUNT(ActualName)
a. GlobalFlexfieldQualifier
b. UniqueFlexfieldQualifier
c. RequiredFlexfieldQualifier
62
WriteCodebeforeExecutionoftheReport
FNDFLEXSQL
APPL_SHORT_NAME=SQLGL
CODE=GL#
NUM=P_STRUCT_NUM
OUTPUT=:P_ACCOUNT
MODE=SELECT
DISPLAY=GL_ACCOUNT
3. CostCenterSegmentProperty(UserName)
GL_COST_CENTER(ActualName)
a. ThisisnotUniqueandisnotcompulsory
19.INTERFACES
Interfaces are the Tables, which are act as a medium to transfer the data from one
module to another module or to transfer the data from legacy system into Oracle
Applications. There are 352 tables provided by the Oracle Package. Each module is
havingitsownInterfaceTables.
Interfacing:
Itistheprocessofconvertingtherecordsfromoneformattoanotherformat.
Themaincomponentsofthisinterfacingare
TransferProgram
InterfaceTableand
ImportProgram
TransferProgram:
If the source modules data are implemented in Oracle Applications then the Transfer
ProgramsaregoingtocomewiththePackage.Ifthesourcemodulesareimplementedin
external system (i.e. other than Oracle Applications) then we have to develop our own
Transfer Programs. Generally these Transfer Programs are developed using PL/SQL,
JAVAorSQLLoader.
TheLogicoftheTransferProgramsis
ItmapsthecolumnsofsourcetablewiththecolumnsofInterfaceTables.
ItperformsRowLevelandColumnLevelvalidations.
IttransfersthedatafromSourcetotheInterfaceTable.
63
InterfaceTables:
Thecolumnsofthesetablesareclassifiedinto4types.
1. MandatoryColumns.
2. ConditionallyRequiredColumns.
3. OptionalColumns.
4. InternalProcessingColumns.
MandatoryColumns:
ThesearetheNormalcolumnsintheInterfaceTables.Thesearethemaincolumnswhich
arerequiredinthedestinationtables(i.e.OracleApplicationModuleTables).
Note: With the help of mandatory columns only the Import Program will converts the
recordsfromsourcetodestination.
ConditionallyRequiredColumns:
ThevaluesforthesecolumnsarebasedonthevaluesofMandatorycolumns.
OptionalColumns:
These are used when a client wanted to transfer some additional information from
sourcetodestination.Thesearebasedonclientsrequirement.
InternalProcessingColumns:
Status and Error Message columns are called Internal Processing Columns. These are
specific only to Interface Table. These columns are going to be used by the Import
Program to updatethe status and errormessage, ifthe record fails itsvalidation while
importingfromInterfaceTabletotheDestinationTable.
ImportProgram:
For all Interface Tables, Oracle Application Package is going to provide Import
Programs. These are generally registered with destination modules. These Import
ProgramsaredesignedusingPL/SQL,JAVA,C,C++,etc.
ThelogicoftheImportProgramis
It maps the columns of the Interface Table with one or more columns in the
destinationtable.
64
Itperformsrowlevelandcolumnlevelvalidation.
It imports the data from Interface Table to the Destination tables, if the records
validatedsuccessfully.
ItdeletesallthesuccessfullyvalidatedrecordsfromInterfaceTable.
If the record fails its validation then the Import Program will update the status
anderrormessagecolumnsofInterfaceTable.
Q:
Ans: InterfacesareusedtotransferthedatafromlegacysystemtoOracleApplication
systemwhereasAPIisusedtoconvertthedatafromoneform toanother form
withintheOracleApplicationModule.
Example:
AR
Transfer Program 1
Import Program
AP
GL
Transfer Program
Daily Transactions
Transfer Program
PO
Journal
Transfer Program
FA
Interface Table
Weekly Transactions
Ledger
Legacy
Transfer Program
Balance
65
Scenario1: Interface Tables are provided and the integrating modules are
implemented in Oracle Applications. In this scenario the package itself is going to
provideaseparatetransferprogramforeachintegratingmodule.Seefigurefordetails.
Indent:isspecifiesthedetailslike,thelistofmaterialsrequired,howmuchquantityis
required,whenthematerialisrequiredandqualityoftheitems.
Interface
AP
GL
Scenario2:InterfaceTablesareprovidedandtheintegratedmodulesareimplemented
inexternalsystemwiththesamedatabaseasOracleApplications.Inthisscenariofront
endisdifferentanddatabaseissame.
Takeforexamplethereare40columnsaccordingtotransactiontableofclientout
ofwhich23aremandatorycolumnsand17areoptionalcolumns.Butasperapplications
interface table is having 20 mandatory columns. While transferring the data from
existing system to applications we have to search for matching columns in transaction
tablewiththeinterfacemandatorycolumns.Matchingcolumnsmaybeofmandatoryor
optional columns of transaction table of client. Assume that there are 17 columns are
foundmatchingcolumnsoutof20mandatorycolumns.Ifwewanttoinserttherecord
intointerfacetableweneed20mandatorycolumnscompulsorily.Inthisexamplesince
thereare17matchingcolumnsoutof20columnswehavetoprovidedefaultvaluesto
the nonmatching (i.e. 3) columns with the authentication of the client. If the client is
havingmandatorycolumnsofhisown,whicharenotmandatoryininterfacetable,then
wemapthosecolumnswiththeoptionalcolumnsofinterfacetable.
LogicoftheTransferPrograminthisscenario
1. Createthedatabaselinksbetweenthetwodatabases.
2. Search for the matching columns of the interface table with source tables or
externaltables.
3. Provide default values for the mandatory columns of interface table for the
columnswherethematchingcolumnsarenotfoundinsourcetable.
4. Performrowlevelandcolumnlevelvalidations.
5. Incase if the clients requirement is to transfer all the mandatory columns of the
source to the destination, we can map the remaining mandatory columns of the
clientaregoingtobemappedwithoptionalcolumnsoftheinterfacetable.
6. CreateaPL/SQLprocedureandmapthecolumnsofInterfaceTablecolumns.
7. TransferthedatafromsourcetabletotheInterfaceTable.
66
Scenario3: Interface Tables are provided and the integrating modules are
implemented in external system with different database (i.e. Sybase, DB2, SQL Server,
etc.).Inthisscenariowehavetoconvertthedataintoflatfile(i.e..dat).Thenwewrite
thetransferprogramusingPL/SQLscript.
SYBASE
INTERFACE
Import
DB2
TABLE
Program
SQL SERVER
Using
PL/SQL
Transfer
Data To
Temp.
Oracle
Table
Applications
Database
Convert
Load
SQL
Flat File
Data To
Data To Loader
Convert Data
UTL
Load
Using PL/SQL
Data To
FILE
From_
To_
From_
To_
User_
Conversion_ Mode_
Currency currency Conversion_ Conversion_ Conversion_ Rate
Flag
Date
Date
Type
USD
INR
01SEP2006 30SEP2006 Corporate
44
I
ASD
INR
01SEP2006 15Sep2006 Spot
28
I
This Interface table consists of Database Trigger, which fires the input program
whenever we insert the record in this. This will create no of records into
GL_DAILY_RATES Table of GL module based on the From_Conversion_Date and
To_Conversion_Dateperiod.
Example:
Intheabovetablethereare30daysinthefirstrecord.
ThisDBTriggerupdatestotal60recordsinGL_DAILY_RATESi.e.
30recordsforconversionfromUSDtoINRand
30recordsforconversionfromINRtoUSD.
67
ValidationsRequiredaccordingtothisinterfacetableare
1. FromcurrencyshouldexistsinGL_CURRENCYTableanditshouldbeactive.
2. TocurrencyshouldalsoexistsinGL_CURRENCYTableanditshouldbeactive.
3. FromConversionDate:Alldatevalidationsappliedforthisdate.
4. ToConversionDate:Samevalidationsrequiredasfromcurrencybutitshouldbe
greaterorequaltoFromConversionDate.
5. ConversionType:ThisconversiontypeshouldexistinGL_CONVERSION_TYPE.
6. ConversionRate:Itshouldbeanumber.
7. ModeFlag:ItisthestatuscolumninGL_DAILY_RATESinterfacetable.
I
stand
forInsert
U
stands
forUpdate
D
stands
forDuplicate.
Note:FromCurrency,ToCurrencyandConversionTypeareCasesensitive.
Stepsrequiredfortransferringdatafromlegacysystemtooracleapplications
1. Create daily.dat flat file and save it in server directory
D:\Oracle\Visdb\plsql\temp(thisisthedefaultdirectoryforUTLscriptfiles.To
knowthepathofthisdirectoryopentheinitvis.orafile.
From_
To_
Currency currency
USD
ASD
INR
INR
From_
Conversion_
Date
01SEP2006
01SEP2006
To_
Conversion_
Date
30SEP2006
15Sep2006
User_
Conversion_
Type
Corporate
Spot
Conversion_
Rate
Mode_
Flag
44
28
I
I
2. Create Transfer program using SQL and PL/SQL to upload data from flat file to
theInterfaceTable.
WritethecodeatSQL*PLUSprompt(i.e.SQL>)
DECLARE
Fp
UTL_FILE.FILE_TYPE;
F_Curr
Varchar2(10);
T_Curr
Varchar2(10);
F_Date
Date;
T_Date
Date;
C_Type
Varchar2(9);
C_Rate
Varchar2(2);
M_Flag
Varchar2(1);
My_Line Varchar2(100);
BEGIN
Fp:=UTL_FILE.FOPEN(D:\Oracle\Visdb\9.2.0\plsql\temp,daily.dat,r);
UTL_FILE.GET.LINE(Fp,My_Line);
68
LOOP
UTL_FILE.GET.LINE(Fp,My_Line);
F_Curr:=SUBSTR(My_Line,1,3);
T_Curr:=SUBSTR(My_Line,1,3);
F_Date:=SUBSTR(My_Line,1,3);
T_Date:=SUBSTR(My_Line,1,3);
C_type:=TRIM(SUBSTR(My_Line,1,3));
C_Rate:=SUBSTR(My_Line,1,3);
M_Flag:=SUBSTR(My_Line,1,3);
INSERTINTOGL.GL_DAILY_RATES_INTERFACE(
FROM_CURRENCY, TO_CURRENCY, FROM_CONVERSION_RATE,
TO_CONVERSION_RATE,
USER_CONVERSION_RATE,
CONVERSION_DATE,M_FLAG)VALUES
(F_Curr,T_Curr,F_Date,T_Date,C_type,C_Rate,M_Flag);
ENDLOOP;
EXCEPTIONWHENNO_DATA_FOUNDTHEN
TL_FILE.FCLOSE(FP);
MESSAGE(ENDOFTHEFILE);
END;
20. BISINESSCOMPONENTS
The main components that are required to any business transaction are DATE,
CURRENCY,ACCOUNTSandENTITIES.
DATES:Tovalidatethesedatecomponentsweneedtodefinecalendarbasedonperiod
type. This period type is to specify how many number of periods required for
maintainingthebalancesoftheorganization(i.e.daily,weekly,monthly,quarterly,etc.).
This period types are stored in GL_PERIOD_TYPES table. Based on these period types
we define calendars. These calendars information is stored in GL_CALENDARS table.
Foreachcalendarwedefineperiodsdependinguponthenumberofperiodsassignedto
period types. This periods information is stored in GL_PERIODS table. By default the
status of all these periods is closed. This period statuses are stored in
GL_PERIOD_STATUSEStable.
ENTITIES:entityisnothingbutamodule.SupplierEntity(AP),CustomerEntity(AR),
EmployeeEntity(HR),etc.,aresomeexamples.
69
CURRENCY:Thereare200typesofcurrenciescomewiththepackage.Allthecurrency
informationwillbestoredinGL_CURRENCIEStable.Thecurrency,whichisassignedto
ourSetOfBooks,iscalledFunctionalCurrencyandtheremainingallthecurrenciesare
calledasForeignCurrencies.
Thereare3typesofcurrencies
1. FunctionalCurrency
2. ForeignCurrency
3. StaticCurrency
FunctionalCurrency:inwhichwearegoingtomaintainthebalances.
ForeignCurrency:Allthecurrenciesotherthanfunctionalcurrenciesarecalledforeign
currency.
Statistical Currency: This is used to record the usage factor for various measurement
units.
Example:If3departmentsaregoingtosharethesamepremisesandrentforthe
premises is 20000. This 20000 has been shared proportionally to all the departments
dependingupontheirusagefactor.
CHARTOFACCOUNTS:isthestructuredefinedonaccountingKeyFlexField.
SETOFBOOKS(SOB):TheseareusedtosecureaJournalsTransactionsofaparticular
companyandareacollectionofcomponentsCalendar,CurrencyandChartOfAccounts.
Assign these SOB to a responsibility to the GL_RESPONSIBILITY using
GL_SET_OF_BOOKS profile option. When we open the Journal from the responsibility
thedefaultstatusofthisperiodisclosed.Torecordatransactionfromourresponsibility
we have to open the periods. Depending upon the first opening period system assigns
never open status to its prior period and future entry status period to next periods
dependinguponthenumberoffutureperiodsetsinourSetsOfBooks.
PeriodStatus
Journal
Journal
Inquiries/
Entry
Posting
Reports
NeverOpen
NO
NO
NO
Open
YES
YES
YES
Closed
NO
NO
YES
FutureEntry
YES
NO
NO
PermanentlyClosed
YES
NO
YES
70
Q:
How do we can find the Set Of Books, Flex Fields, Open/Close Periods,
CategoryandSources?
InAOLModule
InAOLModule
Setup
Setup
Financials
FlexFields
Books
Define
Define
InAOLModule
InAOLModule
Setup
Setup
OpenClose
Journal
LatestOpenPeriods
Category
InAOLModule
Setup
Journal
Sources
GL_INTERFACE:ItisusedtoconvertthetransactionsofsubledgerintoJournals.
ValidationsrequiredforGL_INTERFACEtableare
1. STATUS: should be always new when we are transferring the data from sub
ledgertothestatusofgeneralledger.Importprogramchangesthestatustohold
iftherecordisnotvalidatedsuccessfully.Thestatusshouldbeinsentencecase.
2. SET_OF_BOOKS_ID:thisshouldexistinGL_SETS_OF_BOOKStable.
DECLARE
CHKVARCHAR2(1);
BEGIN
SELECTXINTOCHKFROMAPPS.GL_SETS_OF_BOOKS
WHERESET_OF_BOOKS_ID=&SOB_ID;
DBMS_OUTPUT.PUT_LINE(THISSOB_IDVALIDYOUCANPROCEED);
EXCEPTIONWHENNO_DATA_FOUNDTHEN
DBMS_OUTPUT.PUT_LINE(THISSOB_IDISNOTVALID);
END;
/
3. ACCOUNTING_DATE:isthedatewhenexactlywecanpostthejournals.Tables
required to validate the accounting date are GL_SETS_OF_BOOKS,
GL_PERIOD_TYPES,
GL_PERIOD_SETS,
GL_PERIODS
and
GL_PERIOD_STATUSES.
4. CURRENCY_CODE: This code should be same as the currency assigned to the
Sets o f Books. This code should exist in GL_CURRENCY table. If the currency
71
codeisdifferentfromSetsofBooksthenitismandatoryforustoprovidevalues
for the conditional columns like USER_CURRENCY, USER_TYPE,
CURRENCY_CONCERSION_RATEandCURRENCY_CONVERSION_DATE.
Note:
5. DATE_CREDITED:isthetransactiondateorJournaldate.Thisdateshouldbein
openorfutureentryperiods.Thetablesaffectedforthissameasaccountingdate.
Herewehavetogivetheconditionforopenandfutureperiods.Dateshouldbe
between starting date of latest open period and ending date of future entry
period.
6. CREATED_BY:ThisisfrontendloginUSER_IDshouldexistinFND_USERtable
andthisusershouldalsohavetheresponsibilitytorecordtheJournals.
7. ACTUAL_FLAG:ingeneralledgerwearegoingtomaintain3typesofbalances.
a. ActualBalances(flagisA)
b. BudgetBalances(flagisB)
c. EncumbranceBalances(flagisE)
Toupdateactualbalancesthegeneralhastobecreatedasactualjournal.Budget
journals are going to affect budget balances. Encumbrance journals are going to
affectencumbrancebalances.
8. USER_JE_CATEGORY_NAME: it is usedtodescribe the purpose of thejournal
entry.ThiscategoryisgoingtobestoredinGL_JE_CATEGORIES.
9. USER_JE_SOURCE_NAME:itisusedtostoretheoriginofthejournalentry.This
sourceisstoredinGL_JE_SOURCES.
10. BUDGET_VERSION_ID: This column is required when we are going to record
BudgetJournals.ThisinformationisstoredinGL_BUDGET_ENTITIES.
11. ENCUBRANCE_TYPE_ID: This is required when we are going to required
EncumbranceJournals.
12. SEGMENT_COLUMNS:Wehavetoprovidethevaluesforthesegmentcolumns
depending upon howmany number of segment columns associated with the
Chart_Of_Accounts_IDorStructure_IDassociatedwithourSet_Of_Books.
Thetablesusedtovalidatethesegmentsare
FND_ID_FLEXES,
FND_ID_FLEXE_STRUCTURES,
FND_ID_FLEXE_SEGMENTS,
FND_ID_FLEXE_VALUE_SETS,
FND_ID_FLEXE_VALUES,
FND_ID_FLEXE_VALUE_TL.
72
13. ENTER_DR and ENTER_CR: Columns are used to enter the debit amount ar
Creditamount.
SampleCodeRequiredtoUploadtheDatafromLegacySystem
LOADDATA
INFILE*
INTOTABLEGL.GL_INTERFACE
FIELDSTERMINATEDBY,OPTIONALLYENCLOSEDBY
(STATUS,
SET_OF_BOOKS_ID,
ACCOUNTING_DATE,
CURRENCY_CODE,
DATE_CREATED,
ACTUAL_FLAG, USER_JE_CATEGORY_NAME, USER_JE_SOURCE_NAME, SEGMENT1, SEGMENT2,
SEGMENT3,SEGMENT4,SEGMENT5,ENTER_DR,ENTER_CR)
BEGINDATA
Record1
new, 1, 25MAY2001, USD, 25MAY2001, 1001239,A,Sales Invoice, Receivables, 03, 110, 1570,
0000,110,1947,
Record2
new, 1, 25MAY2001, USD, 25MAY2001, 1001239,A,Sales Invoice, Receivables, 03, 110, 6160,
1100,120,,1947
Save the above code with the file name GLINT.CTL in the path
Oracle\visdb\8.1.6\binatserverend.
ThenrunthefollowingcommandatcommandpromptatServerendtouploadthedata
intovariousdatabasetables.
SQLLDRAPPS/APPS@VIScontrol=glint.ctl
Journalsaregoingtobemaintainedin3levels
1. Batches: is a collection of Headers. This information will be stored in
GL_JE_BATCHEStable.
2. Headers: is a collection of Lines. Headers are based on Category and Currency.
ThisinformationwillbestoredinGL_JE_HEADERStable.
3. Lines:ThisinformationwillbestoredinGL_JE_LINEStable.
73
21. MULTIORGANIZATION
The ability to define multiple organizations and the relationships among them
within a single installation of Oracle Applications is called multi organization. Multi
Organization is the future used to store the data of multiple organizations in a single
Database.
StructureofMultiOrganization
Tata Groups
TM
TCS
TTS
TS
SOB1
SOB2
SOB3
SOB4
Trucks
Cars
Develop
Consulting
CARS_AR
TRUCKS_AR
Training
Nth Org
74
Themaincomponentsofthemultiorganizationare
1) BusinessGroup(BG)
2) LegacyEntity
3) SetOfBooks(SOB)
4) OperatingUnitsorDivisions
5) Organizations
Business Group (BG): The business group represents the highest level in the
organization structure, such as the consolidated enterprise, a major division, or an
Operation Company. A BG is used to secure human resources information like
generation of employee numbers, generation of applicants, position flex fields, Job flex
fields,GradeFlexfield,Fiscalyear,etc.
LegacyEntity:Itisalegalbusiness,whichisgoingtohaveitsownlegislationcodeortax
registrationnumber.Atthislevelwearegoingtoprepareallourfinancialstatements.
OperationUnit:AnoperatingunitisadivisionoraBusinessunitofthelegalentity.At
this level we are going to maintain the information of subledgers. We are going to
maintain the ledgers at Legal Entity level. Receivable, Payables, Assets, etc. are comes
underOperationUnitlevel.
Note:In case if we are working with single organization we can define an entity as a
BusinessGroup,LegalEntity,OperatingUnitandOrganizations.
75
Intheaboveexample:
Module
Responsibility
ProfileOption
SetOfBooks
GL
TM_GL
GL_Set_Of_Books
SOB1
GL
TCS_GL
GL_Set_Of_Books
SOB2
GL
TTS_GL
GL_Set_Of_Books
SOB3
GL
TS_GL
GL_Set_Of_Books
SOB4
GL
GL_Set_Of_Books
GL
Nth_GL
GL_Set_Of_Books
SOBn
DatawillbesecuredforeveryorganizationbyusingSetOfBooksID.
The following are the tables are going to be effected for all the Organizations of multi
organization.
GL_JE_BATCHES
GL_JE_HEADERS
GL_JE_LINES
To record the sales transactions of all the organizations will be stored in the
AR_TRANSACTION_ALLtable.Extracolumnsrequiredtoidentifytheindividualsales
transactions are Set_Of_Books_ID, Org_ID (Operating Unit) and Organization_ID
(BusinessGroup).
76
22. ALERTS
OracleAlertfacilitatestheflowofinformationwithinyourorganizationbylettingyou
createentitiescalledalerts.OracleAlertwillsendmessagesorperformpredefined
actionsinanactionsetwhenimportanteventsoccur.
Alertisamechanismthatchecksyourdatabaseforaspecificexceptioncondition.
Alertsareusedtomonitoryourbusinessinformationandtonotifyyouoftheinformation
youwant.
TherearetwotypesofAlerts
1. Aneventalert
2. Aperiodicalert.
Aneventalerts:Eventalertsimmediatelynotifiestheactivity(i.e.aninsertoran
updatetoatable)inthedatabaseasithappens/occurs.
Tocreateaneventalert,youperformthefollowingtasksintheorderlisted:
Definethedatabaseeventsthatwilltriggeryouralert
Specifythedetailsforyouralert
Defineactionsforyouralert
Createactionsetscontainingtheactionsyouwantyouralerttoperform
Exampleofaneventalert:Selectstatementthatreportsthecreationofnewusers:
SELECTuser_name,:MAILIDINTO&NEWUSER,&USER
FROMfnd_user
WHERErowid=:ROWID;
Aperiodicalerts:Periodicalertsperiodicallyreportkeyinformationaccordingtoa
scheduleyoudefine.
For example, you can define a periodic alert for Oracle Purchasing that sends a
messagetothePurchasingManagerlistingthenumberofapprovedrequisitionlinesthat
each purchasing agent placed on purchase orders. You can define this alert to run
weekly,andprovideperformancemeasurementonaconsistentandtimelybasis.
Tocreateaperiodicalert,youperformthefollowingtasksintheorderlisted:
Define your periodic alert and specify its frequency
Specify the details for your alert
Defineactionsforyouralert
Createactionsetscontainingtheactionsyouwantyouralerttoperform
77
Exampleofaperiodicalert:Selectstatementthatlooksforuserswhohavenotchanged
their passwords within the number of days specified by the value in
:THRESHOLD_DAYS.:
SELECTuser_name,password_date,:THRESHOLD_DAYS
INTO&USER,&LASTDATE,&NUMDAYS
FROMfnd_user
WHEREsysdate=NVL(password_date,sysdate)+:THRESHOLD_DAYS
ORDERBYuser_name;
AlertAction:Anactionyouwantyouralerttoperform.Analertactioncandependon
theoutputfromthealert.Anactioncanincludesendinganelectronicmailmessagetoa
mail ID, running an Oracle Applications program, running a program or script from
youroperatingsystem,orrunningaSQLscripttomodifyinformationinyourdatabase.
Youcanhavemorethanoneactionforanalert,andanactioncanincorporatetheoutput
ofthealert.
Action Set: A sequence of alert actions that are enabled for a particular alert. You can
assignasequencenumbertoeachactionyouincludeinanactionsettospecifytheorder
inwhichtheactionsareperformed.
78
79
Message: This action is used to send a message to application user email_id using
Electronicmailserver.
Concurrent Program: Using this action we can run any concurrent program, which is
registeredinoracleapplicationswhenanexceptionisraised.
SQLStatementScript:ThisoptionisusedtoruntheSQLstatementswhenanexception
israised.
OS Script: This option is used to run a Shell Script or Batch file when an exception is
raised.
Responsibility is used to define the Alerts are Alerts Manager in production services.
AlertsManagerVisionEnterprisesinvisiondatabase.
Note:History table is used to store the exceptions raised and actions taken by alerts
information.Alert(i.e.whetherthealert isfiredor not)status isfound inAlerts
Historyoption.
Details:Validatesoftheentiredetailssummary.Anyoneoftheconditionsissatisfiedis
enoughtoraiseanexception.
ActionSets:isthecollectionofactions.Thisoptioncallstheactionswhenanexceptionis
raised.
Note:VisionApplicationscomesunderOperatingUnit
OracleIDisAPPSandOperationUnitisVISION
80
23. DISCOVERER
Oracle Discoverer is a decision support product that enables you to perform ad
hoc queries on a database, analyze and format the results of the query, prepare the
resultsforpresentation,andmanagedatainawaythatismeaningfulforyourbusiness
situation.Itseparatesthemoredifficultdatabaseadministrationtasksfromthesimpler
queryingandreportingtaskssothatanalysts,managers,andotherinformationworkers
caneasilygettheirworkdonewithouthavingtoknowabouteitherdatabasesorSQL.
OracleDiscovererhasthreeparts:
1. AdministrationEditionenablesyoutocreatealayerofmetadata,calledtheEnd
UserLayerthathidesthecomplexityofthedatabasefromusersandreflectsthe
businessareasspecifictoyourcompanydata.
2. Discoverer Plus enables you to easily query a database, save query results in
workbooks,analyzetheresults,andformatareport.
3. Discoverer Viewer enables you to view workbooks created in Discoverer Plus
usingnothingmorethanawebbrowser.
Different Databases
Static Databases
Oracle
Discoverer
SQL
Server
DB2
Reporting Tools
Data
Warehousing
Cagnoes
Informedia
SEIBEL
81
Themaintoolsofdiscovererare
1. DiscovererAdministrator
2. DiscovererDesktop
3. DiscovererViewer
4. DiscovererPlus
From release 11.5.9 onwards discoverer is fully integrated with application server. All
theabovetoolsarebasedonenduserlayer.
EndUserLayer:isaMetaData(i.e.Dataaboutdata)oralogicaldatabase,whichisused
tohidethecomplexicityofthedatabase.Enduserlayercanbedefinedondatabaseusers
or nondatabase users. Nondatabase users are also called as application users. One
databaseorapplicationusercanhaveonlyoneenduserlayer.Enduserlayerdefinedon
end user can also give grant access to other database users. An end user layer is a
collectionofoneormorebusinessareas.
DiscovererAdministrator:functionsare
Gatherstherequirementsofenduser
Createsenduserlayer
CreatesBusinessArea
LoadDataintoBusinessArea
GiveControlaccesstoBusinessArea
CreatesJoinsandConditions
SendtoUsers
BusinessArea:isalogicalgroupoftablesandviewsofaparticularenduserlayer.B.Ais
acollectionoffolders.Afolderisatableloadedfromthedatabase.Folderisacollection
ofitems.Eachitemrepresentsacolumninthetable.Wecanalsodefinespecialitemsfor
calculationpurpose.
Discoverer Desktop: This tool is going to be used by the end user in standalone
machine.Itis used to access end user layers. Using desktop we can create worksheets.
Wecananalyzethedata.Wecancreatecharts(Graphs).
Discoverer Viewer: This tool is going to access the end user layer at client site on the
WebinHTMLformatonly.Usingthistoolwecananalyzethedataandcreategraphs.
Discovererplus:isusedtoaccessenduserlayerontheWebinappletformat.Usingthis
toolwecancreateworksheets,analyzedataandcreatecharts.