97
1 ERP - ORACLE APPLICATIONS Pre-requisites to learn Oracle Applications Oracle 9i SQL - Reference books DDL Commands DML Commands TCL Commands Quarries, Sub Quarries Operators PL/SQL - Reference books – by author Scott Urman Cursors Trigger Packages, Procedure, Functions Forms 6i - Reference books – by Evan Baris Canvases – types – functionality Property Classes Visual attributes Programe Units Record Group Triggers – Sequences Form functions – like call form Reports 6i Variables – like Bind, Lexical Columns - like Summery, Placeholder, Formula Report Triggers – 6 types and sequence Format Triggers and Validate triggers Layout objects o Frame o Repeat frame o Anchor o Boilerplate

Oracle Apps Technical Document

Embed Size (px)

DESCRIPTION

Basic of Oracle Ebs

Citation preview

  • 1

    ERP - ORACLE APPLICATIONS Pre-requisites to learn Oracle Applications Oracle 9i SQL - Reference books

    DDL Commands DML Commands TCL Commands Quarries, Sub Quarries Operators

    PL/SQL - Reference books by author Scott Urman

    Cursors Trigger Packages, Procedure, Functions

    Forms 6i - Reference books by Evan Baris

    Canvases types functionality Property Classes Visual attributes Programe Units Record Group Triggers Sequences Form functions like call form

    Reports 6i

    Variables like Bind, Lexical Columns - like Summery, Placeholder, Formula Report Triggers 6 types and sequence Format Triggers and Validate triggers Layout objects

    o Frame o Repeat frame o Anchor o Boilerplate

  • 2

    Oracle Applications 11i - Introduction ERPs available in market

    SAP Oracle Applications

    o People soft o Siebel o JD Edwards

    Oracle Applications are used to capture Business functionality information of the organization.

    Instances o Development - Development

    Development stage 1 Development stage 2

    o Testing - Testing o Production Client testing

    Involved personalities of Oracle Applications and their roles and responsibilities in brief

    1) DBA Database Administrator a. Installation of Oracle Applications b. Applying patches c. Maintaining Multiple Instances

    2) Functional Consultant a. Interaction with the client b. Gathering the requirements for development / customization c. About oracle applications what available and what wasnt available. d. Example invoice form fields - Or develop a invoice form from scratch e. Preparation of FDD (Functional Design Document)

    3) Technical Consultant Input FDD a. Go through the FDD b. Prepare TDD (Technical Design Document) Logic, Tables, Procedures,

    Forms, Menus, Packages approval c. Development of Component d. Test the component e. Deliver to the client

    All these sessions will go trough the below mentioned components R I C E - Components for development 70%

    R - Reports - Reports 6i I - Interfaces - Programs, SQL, PL/SQL C - Conversion - Programs, SQL, PL/SQL E - Extensions - Forms 6i

    Functions Knowledge 30%

    Purchase Order Module Accounts Payable Module Order Management Module Inventory Module

  • 3

    I) Types of Projects

    a. Implementation Project: Client will be using another software to maintain the business solutions. Now the client wants to have Oracle Applications package to capture the data. That time we will start setups, data conversions, gap analysis, functions document preparation from the scratch. - first time

    b. Customization Project: Client was already using Oracle Applications,

    now the client would like to have few more modules to cover the business, for that we will customize new modules and integrate with existing modules.

    c. Migration or Up-gradation Project: Client was already using Oracle

    Applications older version now client would like to move new version of Oracle Applications that time we will migrate older version objects in to new version.

    Version Database GUI 10.7 Oracle 7 Forms 4.5, Reports 2.5 11.0.3 Oracle 8 Forms 6i, Reports 6i 11.5.3 Oracle 9i Forms 6i, Reports 6i 11.5.4 Oracle 9i Forms 6i, Reports 6i 11.5.5 Oracle 9i Forms 6i, Reports 6i 11.5.6 Oracle 9i Forms 6i, Reports 6i 11.5.7 Oracle 9i Forms 6i, Reports 6i 11.5.8 Oracle 9i Forms 6i, Reports 6i 11.5.9 Oracle 9i Forms 6i, Reports 6i 11.5.10 Oracle 10g Forms 6i, Reports 6i, Java, JDeveloper

    d. Support or Maintenance: Once the implementation, customization and

    migration are over, then supporting project will be started where we will give supporting for the objects which were already developed, customized and migrated.

    Existing Ora Apps

    Version

    10.7

    New Version

    11.5.9 or 11.5.10

    Existing Ora Apps

    Few modules

    Financial Modules

    Migration

    Manufacturing Modules (Customization and

    Integration)

    Old System

    Cobal Fox Pro

    New System

    Oracle Apps

  • 4

    II) Types of Modules Module: Module is nothing but one application it contains forms, reports and programs which are related for specific business functionality. Example: PO Module This will be used to capture purchasing information like suppliers, their contact details, supplying material, unit price and discounts and so on.

    ERP

    Financial Manufacturing HRMS CRM AP Accounts Payable

    PO Purchase Order

    People Customer Relationship and Management

    AR Accounts Receivables

    Inv Invoicing Payroll Tele Services

    FA Fixed Assets WIP Work in Process

    Benefits Service Contract

    CM Cash Management

    BOM Bills of Materials

    OTL Oracle Time & Labour

    Mobile Process

    GL General Ledger

    OM Order Management

    PA Project Accounting

    Production

    MRP Schedules Enquiring

    III) Modules Integration :

    PO

    Supplier Inventory

    WIP Production

    BOM MRP Scheduling

    QA Testing

    OM Sales, Shipping

    AR GL

    CM

    AP

    HRMS

    FA

  • 5

    4) Types of Documents: The methodology of behind is AIM Application Implementation Methodology developed by Oracle Corporation

    R I C E Number Name Prepared by MDO 50 Functional Design Document Functional Consultant MDO 70 Technical Design Document Technical Consultant

    Module Design Forms & Reports

    MDO120 Migration Document Technical Consultant

    CVO40 Conversion functional Design Document

    Functional Consultant Conversions Interface

    CVO 60 Conversion Technical Design Document

    Technical Consultant

    Support CR Document Change Request Technical Consultant

    NOTE: Migration Document is two types

    1) Installation Process: Installation Stages or three types development, testing, production. If any of the form or report is developed, when it is moving from one instance to another instance, to be moved all the components of that. Example functions, procedure, packages etc. This process will be done by DBA.

    2) Execution Process: In this the execution of the form or report with a screen shoot to be specified along with the functionality

    CR Document: The document tell about the request made by the client, it could be very small change like single filed to be added or deleted to the form or procedure to be deleted.

    5) Oracle Applications File Architecture

    Linux (Server)

    Windows (Client) Windows (Client)

    FTP

    FTP

  • 6

    Custom_ TOP:

    Custom top will be created by customer (client) for the custom development and customizations. At least one custom top is required for every client. We can have multiple custom tops also as per the requirements

    NOTE: 1) We are not suppose to develop are customize the product tops like AP, AR, GL, PO 2) If oracle applies the patches (scripts) against the application the script will over right

    both developments and customization whatever we have done. That is the reason we will us custom top. Oracle will not touch the custom top and it will not provide any type of support.

    US Folder:

    This folder is language specific by default American English language will be implemented. If we want to have multiple languages we can implement in Oracle Applications by specifying different folders. This folder is only applicable for Forms and Reports because both are GUI objects.

    Select * from FND_LANGUAGE where installed_flag in (B, I) Flag B - Base language, Flag I - Installed language, Flag D - Disable language

    11.5.0 Folder: This oracle application release name based on the release it will be specified

    10.7 10.7 11.0.3 11.0.3 11.5.3 11.5.4 11.5.5 11.5.6 11.5.7 11.5.8 11.5.9

    11.5.0

    11.5.10 11.5.10

    APPL_TOP

    CUS_TOP PO_TOP AP_TOP GL_TOP INV_TOP AR_TOP

    11.5.0 11.5.0 11.5.0 11.5.0 11.5.0 11.5.0

    Reports SQL PL/SQL BIN Forms Mesg., Out Admin

    US US

    ..fmx ..rdf

    .SQL .proc .func .pkg .pkgsc .pks

    C Prog .java .ctl .shell script

    .msg .outfile Admin script

  • 7

    Oracle Applications Database Design Predefined database Oracle 9i Schema Diagram Item Details Report

    Item Supper Cheque Buyer

    Monitor IBM 1745/- Stockpet

    Invoice Schema

    PO Schema

    AP Schema

    HRMS Schema

    User connect only one schema at time Total approximately 4000 schemas available APPS Schema contains only synonyms Per ever database object we will find synonym in APPS Schema Table name and synonym name should be same No module to cover the Share Market Business New Module New Schema New Top

    APPS Schema:

    This one of the Schema in Oracle Applications database it contains only synonyms. It has got access other schema database objects

    PO Schema:

    It contains only PO Objects like PO Tables Indexes, Sequences, and views and materialized views and so on. It will connect to PO Schema we can access only PO objects. We cant access other schema database objects.

    NOTE

    We are not suppose to create tables in apps schema, we will create the tables in custom schema then we will provide grants to apps schema

    While development of forms, reports, programs we will always connect to apps schema in oracle applications.

    AOL Application Object Library

    After o development / customization n the objects to be registered with this. This has got the two responsibilities.

    1) System Administrator: Which has got the functions like 1) users, 2) Responsibilities 3) Reports development / customization 4) Procedure 5) Printer Installation 6) Admin activities - Server Monitoring, Request submission

    2) Application Developer: Which has got the functions like 1) Forms 2) Menus 3)

    Messages 4) Flexi fields 5) Profiles

    PO

    AR

    HRMS

    AP

    INV

    GL

    APPS

  • 8

    After installation of Oracle Applications the default User details as follows User Name : OPERATIONS Password : WELCOME And connect and select System Administrator responsibility To create New User Security User Define Enter To move in the form some shortcut keys

    1) If you want to query all the record Ctrl + F11 2) If you want to query few records for form

    a. Open the form b. Press F11 Query mode c. Search criteria by using % d. Press Ctrl + F11

    3) To close the form F4 To Connect to database or Bank End User ID : APPS Password : APPS Host string: PRODUCTIONS Creation of New User Front End

    1) Connect to the application 2) Enter application User Name : OPERATION and Password: WELCOME 3) Select the Responsibility called System Administrator 4) Open the user Form - Security User- Define and enter 5) Enter Username and password and attach Responsibility 6) Save the Transaction. 7) Once user is created we cant delete

    WE can find all the user details in FND_USER table Select * from FND_USER where user_name = 20user Note: We can find the table names from front end by using help menu

    Help Record History option If open a form we can three types of fields

  • 9

    Yellow Color Mandatory Fields, White Color Optional Fields, Gray Color Read Only Effective Dates : From To Some of the records we cant delete in Oracle applications instead of the we will effective dates From and To to enable or disable the record. Who columns in Oracle Applications Ever Database table contains following Colums.

    CRETED_BY User Id CREATION_DATE System date

    When we create

    LAST_UPDATED_BY User ID LAST_UPDATED_DATE System Date

    When we Updated

    LAST_LOGIN_DATE System date Login system date When we go to Record History option we can find all the who columns Help Record History Executables .rdf Reports .sh Unix Shell Script .sql SQL .proc, .fun, .pck PL/SQL .C C Programe .proC ProC .ctl Sql * loader .prl Perl

  • 10

    Concurrent Programe

    Is nothing but instances of execution file along with parameter and incompatible programs

    We can register 11 types of executable as Concurrent Programe Advantages

    o We can execute multi language programmes as Concurrent Programe o When we run Concurrent Programe we can utilize 100% local machine

    hardware capacity o We can change the Concurrent Programe output based on employee

    profile o We can submit only Request o We can schedule the Concurrent Programe as per client requirement.

    Report Registration

    1) Develop the report (.rdf) as per client requirement by using Reports 6i Builder 2) Move the report from the local machine in to the server

    a. CUS_TOP\11.5.0\reports\US .rdf (or) b. PO_TOP\11.5.0\reports\US .rdf

    3) Select System Administrator a. Create Executable b. Executable name c. Application Name d. Execution Method e. Report (.rdf) file name

    4) Create Concurrent Programe and attach a. Executable b. Parameters c. Incompatibilities

    5) Create Request group and attach Concurrent Programe 6) Create Responsibility

    a. Request Group Concurrent Programe b. Data Group Collection of User IDs c. Menu Collection of forms

    7) Create user attach Responsibility to the user 8) User will select the responsibility and go to SRS (Standard Request Submission)

    window submit the request Executable => Concurrent Programme => Request Group => User=> SRS Note: For Single Executable we can have different concurrent programs with different parameters To create simple report with below SQL statement Select User_ID, User_name, Trunc(creation_date) from fnd _user

  • 11

    Executable:

    After moving .rdf in to the server, we will crate executable by specifying execution name execution method and application name.

    Concurrent Programe:

    After creation of executable we will create concurrent Programe by attaching executable, if parameters are there we will attach parameter if incompatibility programs are there we will add those programs , for single executable we create multiple concurrent programs with different parameters.

    Request Group:

    After creation of concurrent program we must add the programme to the request group. Request Group is nothing but collection of Concurrent Programs and Reports.

    Responsibility:

    It is level of authority where we will combine Data Group, Request Group and Menu. Request Group is optional menu and data group is mandatory.

    Data Group:

    Data Group is nothing but collection of applications names and Oracle User Names based on this Username data will be retrieved from database.

    Menu:

    Menu is nothing but collection of functions (forms) and submenus. Create a simple report using below query Select * from PO_VENDORS Vendor_ID, Vendor_Name, Creation_Date Navigation Executable Window - Concurrent=>Programme=>Executable Concurrent Programem Window - Concurrent=>Programme=>Define Request Group Security=>Responsibility=>Request Responsibility Security=>Responsibility=>Define User Security=>User=>Define SRS Window View Menu => Requests To find out output file path and log file path we will write the below select statement Select logfile_name, outfile_name from fnd_concurrent_requests Where Request_ID = ;

  • 12

    Reports with Parameters Data Model Select * from FND_USER USER_ID, USER_NAME, CRATION_DATE Parameters From USER_ID, To USER_ID Layout Model Designing of layout User Parameters P_From P_To P_Title Data Model Change the SQL Query Select * from FND_USER WHERE user_id between :P_From :P_To Compile and save To register the parameter with applications Concurrent Programe window to be opened.

    Note: We can change the sequence based on the requirement.

  • 13

    If report is having the parameters then we have to register those parameters at the time of creation Concurrent Programe.

    Value Set: values set is nothing but list values. It will be used to validate values

    while entering the parameters.

    Token: Token is one the filed wile be used to map concurrent Programe parameters with report builder find variable. We will enter the find variable name in the toke field so that parameters will be passed to the find variable.

    Required check box: By using this check box we cant make the parameters

    mandatory or optional

    Enabled Check Box: By using this we can enable or disable the parameter.

    Display Check Box: By using this we can hide or display the parameters in SRS window.

    Range Option: While defining the from and to parameters if we wanted to accept

    values in accession order menus from values is low and to value is high we will select the options called low and high.

    Default Types: If we are hiding the parameters user cant enter the values that

    time we can pass default values by using default type and default value filed.

    SRS Window Copy Button: This will be used to find out recent Concurrent Programe list with parameters in SRS Window.

    Default Types

  • 14

    When we are hiding the parameter in SRS windows user cant enter the values that time we can pass values internally by using defaults types.

    1) Constant: If we want to pass constant values as default then we will select default type constant and we will specify the values in default value field.

    2) Current Date: System Date 3) Current Time: System Time 4) Profile: By using the profile option we can pass user profile values as default 5) SQL Statement: When we want to pass select statement to rest as default

    values that time we will select default types as SQL statement and write the select statement in the default values filed. Select statement should not return more then one value.

    6) Segment: When we wanted to pass previous parameter values as default to the next parameter then we will use segment, select default type as segment give the parameter name in the default values field.

    Report Builders Data Model Select User_ID, User_name, Trunc(creation_date) from fnd_user; Layout Model Object Navigator User Parameters

    1) P_From_Date - Date - Input Mask 2) P_To_Date Date Input Mask 3) P_Title Character 100

    Data Model Select User_ID, User_name, Trunc(creation_date) from fnd_user Where trunc (creation_date) between: P_From_Date and: P_To_Date Create a Summery Column Count of UserIDs Oracle Applications To register the parameter P_From_Date Values Set FND_DATE Default Values. P_From_Date Current Date P_To_Date Current Date

  • 15

    P_Title Constant To hide parameter To Uncheck the Display Check box in bottom of the form To write SQL Statement Min and Max creation Date Select MIN(TRUNC(CREATION_DATE)) FROM FND_USER Select MAX(TRUNC(CREATION_DATE)) FROM FND_USER Default values type SQL Statement option Default Value field SQL Statement Segment Default Type as Segment Option Default Values Specify the previous parameter VLUES SETS - Application Validation Set

    Value set is nothing but list of values with validation. It will restrict the user to enter valid values. These are 8 types.

    1) NONE : When we write maintain some format conditioning NO LOV Emp NO: => Only nos. 0 9 => 35 to 7856 => 45 to 0045

    2) INDEPENDENT: Yes LOV user must select values from the list 3) DEPENDENT: Yes LOV The value which will depend upon the previous

    parameter

    Country Code: City Code: i.e. based on the selection of country code lov city code lov will change

  • 16

    4) TABLE: Combination functionality of Independent and Dependent to provide

    database table name and column name. 5) TRANSLATED: Independent Multi language values

    6) TRANSLATED DEPENDENT: Dependent Multi language values

    7) Special : To Display Flexi field data

    8) Pair: To Display Flexi field data.

    1) NONE - a. When we want to restrict the user to enter the values based on some

    conditions then we will use NONE type. Here no list of values user manually will enter the value based on the conditions values will be accepted.

    b. Enter the values set name select format type enter the minimum size select validation type as NONE.

    c. Once the value set is created we can use it for any concurrent program either single time or multiple times.

    d. Once the value set is created we cant delete if value if value set is being used by concurrent program if we want to delete release from the concurrent program then we can delete by using delete option.

    2) INDEPENDENT a. Provide the values to the user either number or character creates the

    independent value set to enter the values for the value set Application-Validation-Values

    b. If we want to provide list values to the user we will go for selecting independent values set type user must select the values from the list.

    c. Open the value set for an enter value set name select format type and select validation type as Independent.

  • 17

    d. Copy the value set name go to values screen enter the values set name and click Find enter the values in the values field save the transactions attach value set to concurrent program.

    e. Once the values are inserted in to the list we cant delete instead of deletion we can disable by using enable check box or effective date from and to.

    3) DEPENDENT

    a. Dependent value set is nothing but another LOV but values will be changing based on the previous Independent value set.

    b. When we are creating dependent we must have 2 parameters 1)Independent 2) Dependent

    c. Open the value set form create Independent value set go to values from enter the values.

    d. Open the values set form create dependent value set by selecting validation type as dependent.

    e. Select edit information button attach Independent value set what ever we have created.

    f. Copy the value set name go to values screen click on find button enter the values based on the Independent value.

    Hyderabad Mumbai Chennai

    India

    Bangalore Newyork Newjersy

    US

    California London UK Paris

    4) TABLE

    Select user_name, user_id, creation_date From FND-USER Where row num < 20 Order by User_name desc

    a. If values are available in database table then we will go for using table value set, we will give the table name and column name system will retrieve the values from the database table.

    b. Open the value set form and give the value set name select validation type is table click edit information button.

    c. Enter the table name, column name in the value field. d. Enter the where clause order by clause in the text item called where order

    by. e. Use the additional column field to display extra columns data in LOV, we

    have to use alias name while specifying additional columns. f. Table Application : It is a optional field based on the table name we can

    find out table application name. g. Go to Application Developer Responsibility

    Application=>Database=>Table query the records based on table name.

  • 18

    h. Select User_ID, USER_name from FND_USER From front end user name should be available and internally user_id to be passed.

    i. Id Column in Value set form If we want to display one column to the user in the front end and pass another column value internally we will use ID column.

    j. Meaning Column This will be used to display the extra columns like additional columns it will work like a additional columns

    k. Display the values from multiple tables i. At the time of giving the table name enter table names with alias

    name by specifying. ( , ) ii. AT the time of selecting give the column name by giving the alias

    name, column name. iii. Join condition is mandatory in where / orderby clause iv. PO_VENDORS, PO_VENDORS_SITE_ALL.

    Select pv.vendor_name, pvs.vendor_site_code From po_vendors pv, po_vendors_sites_all pvs Where pv.vendor_id = pvs.vendor_id.

    5) TRANSLATED INDEPENDENT & TRANSLATED DEPENDENT a. These two value set will work like independent and dependent value set

    but these two value sets will be used to display translation values (other thane English language values) if application is installed for mlti language there we will create these two value sets.

    Select * from FND_LANGUAGES Installed_Flag I - Installed languages B - Base language D - Disabled language

    6) SPECIAL & PAIR

    a. These two value sets will be used to display flexi filed data. Develop the below report with parameters - CPLISTREP.RDF From Date : P_From_Date To Date : P_To_Date Title : P_Title CP Name CDate Application Name Executable Executable Method

    When the width of the report is more we have chose the style of the output in Concurrent program window BACS instead of A4.

    Query Select fcp.user_concurrent_program_name, Trunc(fcp.creation_date) CDate, fav.application_name, fev.executable_name, fl.meaning

  • 19

    from fnd_concurrent_programs_vl fcp, fnd_application_vl fav, fnd_executables_form_v fev, fnd_lookups fl where fcp.application_id = fav.application_id and fcp.EXECUTABLE_ID = fev.EXECUTABLE_ID and fl.lookup_type ='CP_EXECUTION_METHOD_CODE' and fcp.execution_method_code = fl.lookup_code&p_lexical Parameters:

    Lexical parameter to change the query dynamically. Bind parameter to be register before Oracle applications.

    If title parameter is null i.e. if user doesnt pass the value to the title parameter Format trigger. Begin If :P_Title is NULL then Return (True) Else Return (False) End if End If parameters were not passed to the :P_From_Date and :P_To_Date report should display all the records. After Parameter Form Trigger Begin If :P_From_Date is NULL and :P_To_Date is NULL then :P_lexical:= Else :P_lexical:= and Trunc(fcp.creation_date)

    between :P_From_Date and :P_To_Date End if End. ================ Exercise From User ID, To User ID, From Date, To Date Title User_ID User_Name CDate Responsibility Application

    Name Security Group

    From Date

    To Date

    Query prepared by SIR in class Master Level

  • 20

    SELECT USER_ID, USER_NAME, TRUNC(CREATION_DATE) CDATE FROM FND_USER WHERE USER_ID BETWEEN :P_FROM_ID AND :P_TO_DATE Detail Level SELECT FU.USER_ID, FRV.RESPONSIBILITY_NAME, FAV.APPLICATION_NAME, FSG.SECURITY_GROUP_KEY, TRUNC(FRG.START_DATE) FROMDATE, TRUNC(FRG.END_DATE) TODATE FROM FND_USER FU, FND_USER_RESP_GROUPS FRG, FND_RESPONSIBILITY_VL FRV, FND_APPLICATION_VL FAV, FND_SECURITY_GROUPS_VL FSG WHERE FU.USER_ID = FRG.USER_ID AND FRG.RESPONSIBILITY_ID = FRV.RESPONSIBILITY_ID AND FRV.APPLICATION_ID = FAV.APPLICATION_ID AND FRG.SECURITY_GROUP_ID = FSG.SECURITY_GROUP_ID Steps to develop a report

    Data Model Data link to be given between both the quarries. Adjust the margin and comeback to main page Report width to be increased - 13 135 Select the main from and other frames expand variable Place all the text fields. Take the repeating frame and source to master query

    o Put all the fields which are related to master query and what ever are needed.

    Take another repeating frame and place that on the first repeating frame and source to detail query.

    o Put all the fields which are related to details query and what ever are needed.

    Select all the fields and no fill and no line Define the User parameters P_From_ID and P_To_ID Applications

    o Create the table value set for select the parameters

  • 21

    Standards to develop a report in Oracle Applications 3 STANDARD STEPS.

    1) Define the mandatory parameter called P_CONC_REQUEST_ID This is one of the bind variable when ever we submit a request in SRS window that request ID will be passed to this bind variable, based on this request id we can execute concurrent request process. Without this find variable we cant use userexits.

    2) Call the userexit in Before Report Trigger SRW.USEREXIT(FND SRWINIT)

    3) Call the userexit in after report trigger SRW.USEREXIT(FND SRWEXIT)

    Report Triggers

    1) Before Parameter Form Trigger 2) After Parameter Form Trigger 3) Before Report Trigger Before retrieving the data from database 4) Between Pages Trigger - when ever courser goes between pages at first time. 5) After Report Trigger After out is reached the destination i.e. printer, file, email.

    USER EXIT

    It is one of the predefined program in Reports 6i will be used for stop the report execution process for sometime and transfer the control to the 3rd Generation Language get the data and completes the remain execution process.

    Start End

    Parameter form

    Query Layout

    3GL User Exit

    Start End

    Parameter form

    Query Layout

  • 22

    We have 5 types of User Exits available in Oracle Applications.

    1) FND SRWINIT: We will use this user exit in the before report trigger. It will initialize user profile values according to that profile values data will be retrieved from database.

    SRW.USEREXIT(FND SRWINIT) 2) FND SRWEXIT: We will call this user exit from ater report rigger to freeze the

    memory which is occupied by user profile values. SRW.USEREXIT (FND SRWEXIT)

    3) FND FLEX SQL 4) FND FLEX IDVAL 5) FND FORMATCURRENCY

    Purchase Order Application: Group of Forms, Reports and Programs

    Requisition o Internal o Purchase

    RFQ o Standard o Bid o Catalog

    Quotation o Standard o Bid and Catalog

    Purchase Order o Standard o Planned o Contract o Blanket

    Receipts o Direct Delivery o Standard Receipt o Inspection Required.

    Requisition

    Request for Quotation (RFQ)

    Quotation

    Purchase Order

    Receipts

    AP Interface INV Interface

    Purchase Documents

  • 1

    Before going to start PO application we have to define following things 1. Items Creation 2. Suppliers creation 3. Buyer creation

    1) Item Creation

    a. Open the user from in System Administrator Responsibility attach the responsibility called Inventory, Vision Operations(USA)

    b. Open the Items from - Items Master Item enter, system will show the organization list, select the organization vision operations, enter the item name and description.

    c. Go to Inventory tab check the check box called Inventory Item. d. Go to purchasing tab check the check box called purchased and save the

    transactions. e. We can assign the item to the multiple organization by selecting tool menu

    Organization assignment option check the check box called assigned.

    Select * from ORG_ORGANIZATION_ DEFINETIONS - Organizatio_ID is primary key column Select * from MTL_SYSTEM_ITEM_S Where sgment1=Keyboad - Inventory_item_ID - - Organizatin_ID - Composite Primary Key Select MSI.SEGMENT ITEM OOD.ORGANIZATION_NAME From MTL_SYSTEM_ITEM_B MSI ORG_ORGANIZATION_DEFINETIONS OOD Where MSI.ORGANIZATION_ID = OOD.ORGANIZATION_ID And MSI.SEGMENT1 = KEYBOARD

    2) Supplier Creation a. Select the responsibility called Purchasing, Vision Operations(USA) b. Open the suppliers form - Supply Base Suppliers press enter c. Enter the suppliers name and save the transaction and we will get supplier

    number select status button enter site address select contact tab enter contact details and save

    Select * from PO_VENDORS where SEGMENT1=5080 - VENDOR_ID Primary Key Select * from PO_VENDOR_SITESM_ALL where VENDOR_ID=1010 - VENDOR_SITE_ID Primary Key Select * from PO_VENDOR_CONTACTS

    where VENDOR_SITE_ID= 2215 - VENDOR_CONTACT_ID Primary Key

  • 2

    3) Buyer Creation: a. Attach the Responsibility called HRMS Management; Open the Employee form

    (N) HRMS Manager People Enter and Maintain. b. Select new button enter employee name and Date of Birth, select action as

    creation employment chose the option called buyer and save the transaction.

    Select * from PER_ALL_PEOPLE_F Where EMPLOYEE_NUMBER = 893 PERSON_ID is Primary Key column

    c. Go to system administrator create user name attach employee name in the filed called Person and save the transaction.

    Select FU. USER_NAME, PPF.FULL_NAME From FND_USER FU, PER_ALL_PEOPLE_F PPF Where FU.USER_NAME = 20USER And FU.EMPLOYEE_ID = PPF.PERSON_ID

    d. Copy the employee name go to purchasing application open the Buyers form

    attach to the Buyers list - Setup Personnel Buyers and enter. Select * from PO_AGENTS

    This contains only Buyer list and primary key is AGEN_ID

    PO PROCESS

    1) Requisition: It is one of the purchasing document will be crated by employers when ever they required goods or services or training, we will find 2 types of requisitions.

    a. Internal Requisition: This will be created, when we receiving the materials from other organizations(Branches)

    b. Purchase Requisition: This will be created, when we are receiving the materials from outside means suppliers.

    c. We will enter the requisition information at 3 levels i.e. Headers, Lines, Distributions.

    d. One header will be there at least one line multiple line we create for every line at least one distribution or multiple distributions will be there.

    e. Open the requisitions form Requisitions Requisitions and enter. f. Select the requisition type at header level enter item details at line level (item

    Name, quantity, price and need by date) select bistributions buttion enter distribution details like quantity and account details and save the transactions.

    g. Select approve button press OK system will send the document for approval. h. Go to requisition number select find button, it will show requisition approved

    status.

    Select * from PO_REQUISITON_HEADERS_ALL

  • 3

    WHERE SEGMENT1 = 1656 Primary key - REQUISITION_HEAD_ID Select * from PO_REQUISTION_LINES_ALL WHERE REQUISITION_HEADER_ID = 11458 Primary Key - REQUISITION_LINE_ID Select * from PO_REG_DISTRIBUTIONS_ALL WHERE REQUISITION_LINE_ID= 9922 Primary Key - DISTRIBUTION_ID

    i. Cancel the Requisition: Open the requisition summery form enter requisition

    number select find button go to tools menu select option called Control and chose the option as cancel requisition.

    Select AUTHORIZATION_STATUS from PO_REQUISITION_HEADER_ALL

    j. We can find out requisition history by using tools menu option called view action

    history. Select * from PO-ACTION_HISTORY Where OBJECT_ID = REQUISITION_HEADER_ID Select PAH.ACTION_CODE PDF.FULL_NAME From PO_ACTION_HISTORY PAH PER_ALL_PEOPLE_F PPF Where OBJECT_ID = 11459 And PAH.EMPLOYEE_ID = PPF.PERSON_ID

    k. Enter manual requisition Number: Setup Organization Purchasing Options

    and enter - go to numbering tab select requisition number entry as manual type.

    2) RFQ REQUEST FOR QUOTATION: It is one of the purchasing document after requisition is approved. We will go for creation of RFQ we have 3 types of RFQs.

    a. Bid : If company is going to purchase large number of items which are expensive. We will create bid RFQ where we will specify Headers, lines and shipments, where we are not specify any price breaks in Bid RFQ.

    b. Catalog : If company is purchasing materials regularly fixed quantity location and date, then we will select regularly we can include price breaks at different levels.

    c. Standard : This will be created for items we need only once or not regularly, we can include price breaks at different quality levels.

    3) QUOTATIONS : After creation of RFQ document we will send this document to the

    different suppliers who are going to supply the materials, next we will receive quotations from the suppliers either by email or fax or by phone,

    a. Again quotation are 3 types i.e. Bid, Catalog and Standard b. What ever the quotation we are received from the suppliers we will enter those

    quotation details in the system for future purpose. c. If we are sending bid RFQ to the suppliers we will receive the bid quotation for

    catalog RFQ we will receive catalog quotation for standard RFQ we will receive standard quotation.

  • 4

    d. RFQ Terms and conditions.

    i. Payment Terms At the time of creating RFQ document we will specifying the payment terms like due date, interest rates and so on.

    ii. Fright Terms: It is nothing by at transportation charges whether supplier will bear it or buyer.

    iii. FOB(Foot on Board) : It is responsibility of material damage or material missing during the transportation.

    iv. Carrier : We will give the transportation company name so that supplier will supply the materials by this transportation company.

    e. Navigation Open the RFQ form RFQs and Quotation RFQs and enter - select RFQ type from header level enter ship to location, Bill to location details select line level enter item details select price breaks button enter price break details select terms button enter terms and conditions details, select suppliers button and enter supplier name who are going to receive RFQ document

    Select * from PO_HEADERS_ALL Where segment1=306 Primary Key- PO_HEADER_ID Select * from PO_LINES_ALL Where PO_HEADERS_ID = 11845 Primary Key PO_LINE_ID Select * from PO_LINE_LOCATIONS_ALL where PO_LINE_ID 12233 Primary Key LINE_LOCATION_ID Select * from FND_CURRIENCIES Primary Key CURRENCY_CODE Select * from AP_TERMS Primary Key TERM_ID Select * from AP_TERMS_LINES Select * from HR_LOCATIONS Primary Key LOCATION_ID f. AUTO CRATE OPTION : This is one of the feature application to create RFQ or

    PO documents automatically based on the approved requisition document. i. Create requisition and approve it ii. Open the auto create form select clear button enter requisition number

    select find button which will display requisition then details iii. Select the line by checking the checkbox select action as create,

    document types as RFQ iv. Select automatic button click the create button whichwill create RFQ

    document will selected requisition lines and displays RFQ No. g. QUOTATION : - RFQs and Quotation Quotation and enter

    i. We will receive the quotations from suppliers against the RFQ either by fax or email we will enter those quotation details manually in the system to make the quote analysis and future purpose.

    ii. Quotation tables: One we create the quotation from front end data will be stored in the RFQs tables only by column type_lookup_code=quotation.

  • 5

    Select * from PO_HEADERS_ ALL WHERE SEGMENT1 = 500 AND TYPE_LOOKUP_CODE =QUOTATION

    4) Purchase Orders : It is one of the purchasing document at the time of purchasing from

    the supplier we will create this document by specifying terms and conditions and shipping details distribution details and so on. We have 4 types of Purchase Orders

    a. Standard b. Planned c. Blanket d. Contract

    Purchase Order Types Summery

    Standard Purchase Order When we require the materials from suppliers we will cerate standard PO by specifying terms and conditions price, quantity and so on. Select * from PO_HEADERS_ALL where segment1=3445 and type_lookup_id = STANDARD Select * from Po_lines_all where PO_Header_id = 11858 Select * from PO_Line_locations_all where Po_line_id=12216 Primary Key LINE_LOCATION_ID Select * from po_distributions_all where line_location_id Primary Key PO_DISTRIBUTION_ID

    (N) Open the purchase order form Purchase Orders-Purchase Orders and enter select PO type and suppliers information enter the line level details like Items quantity price and so on.

    Select shipments button enter shipping location details quantity promice date, need by date and so on select distribution button enter distribution details and save the transactions.

  • 6

    Select approve button system will submit the document for approvals. Copy the PO number and go to purchase or summary form enter PO number select find

    button. To cancel the purchase order go the tools menu control option. Tools menu copy document to create the same document. Auto Create

    o By using Auto Create option we can create purchase orders automatically from approved requisition by selecting document type as Purchase order.

    SELECT PHA.SEGMENT1 PONUM, PHA.TYPE_LOOKUP_CODE POTYPE, TRUNC(PHA.CREATION_DATE) CDATE, PV.VENDOR_NAME SUPPLIER, PVS.VENDOR_SITE_CODE SUPPLIERSITE, (PVC.FIRST_NAME ||','||pvc.LAST_NAME) Contact, HL1.LOCATION_CODE ShipTO, HL2.LOCATION_CODE BillTo, PHA.CURRENCY_CODE Currency, PPF.FULL_NAME Buyer, PHA.AUTHORIZATION_STATUS PoStatus, SUM((PLA.QUANTITY*PLA.UNIT_PRICE)) LineLevelPrice, PHA.COMMENTS PODesc FROM PO_HEADERS_ALL PHA , PO_VENDORS PV , PO_VENDOR_SITES_ALL PVS, PO_VENDOR_CONTACTS PVC, HR_LOCATIONS HL1, HR_LOCATIONS HL2, PER_ALL_PEOPLE_F PPF, PO_LINES_ALL PLA WHERE PHA.SEGMENT1 = '3449' AND PHA.VENDOR_ID = PV.VENDOR_ID AND PHA.VENDOR_SITE_ID = PVS.VENDOR_SITE_ID AND PHA.VENDOR_CONTACT_ID = PVC.VENDOR_CONTACT_ID AND PHA.SHIP_TO_LOCATION_ID = HL1.LOCATION_ID AND PHA.BILL_TO_LOCATION_ID = HL2.LOCATION_ID AND PHA.AGENT_ID = PPF.PERSON_ID AND PHA.PO_HEADER_ID = PLA.PO_HEADER_ID GROUP BY PHA.SEGMENT1 , PHA.TYPE_LOOKUP_CODE , TRUNC(PHA.CREATION_DATE), PV.VENDOR_NAME , PVS.VENDOR_SITE_CODE , (PVC.FIRST_NAME ||','||PVC.LAST_NAME) , HL1.LOCATION_CODE , HL2.LOCATION_CODE , PHA.CURRENCY_CODE , PPF.FULL_NAME , PHA.AUTHORIZATION_STATUS ,

  • 7

    PHA.COMMENTS Blanket Purchase Order

    When ever company would like to have the agreement with supplier that time first we will create Blanket Agreement, when ever we require materials we will go for releasing the purchase orders.

    Open the purchase order form select Blanket Purchase agreement and enter the details and approve the purchase order.

    Select releases form either blanket PO Number and Item quantity details select distributions button enter distribution details, select approve button for approvals.

    Match Approval

    2 way PO Qty 100 Invoice Qty 80

    3 way PO Qty 100 Receipt Qty 80 Invoice Qty 80

    4 way PO Qty 100 Receipt Qty 80 Invoice Qty 50 Invoice Qty 50

    At the time of creation Purchase Order in the shipments, release we will specify the

    Match approval option. Two way matching is nothing but company purchase order quantity, price with Invoice

    price. Three way matching is nothing but comparing 3 documents Purchase Order, Receipt

    and Invoice. Four ways Matching is nothing but company PO receipt inspection and Invoice

    documents. Receipt Documents

    1. Standard - 3 Way 2. Direct Delivery - 2 way 3. Inspection Required - 4 way

    It is one of the purchasing document will be created while receiving the materials form

    the suppliers we have 3 types of receipt. Navigation Receiving Receipts and enter. Create the purchase order and approve it open the receipts from enter PO Number,

    select find button, system will show the PO Line details, check the check box save to transactions, system write automatically generate Receipt number

    Select * from RCV_SHIPMENT_HEADERS SELECT * FROM RCV_SHIPPMENT_LINES

  • 8

    SELECT * FRO RCV_TRANSACTIONS SELECT * FORM ORG_ORGANIZATIONS_DEFINITIONS.

    Create PO write 3 lines o Go to receipt generate the receipt for only one Item and either the PO Number

    again create another receipt until all the Items over. Select Receipt_Num From RCV_shippment_headers Where shipment_header_id IN (Select shipment_header_id From rcv_shpment_lines Where PO_header_id IN( Select Po_Header_ID From PO_heaer_all Where segment1=3452)) ---------------------------------------------------------- MD050 Functional Design Document Based on above develop Quotation Report Query MASTER QUERY SELECT PHA.PO_HEADER_ID, PHA.SEGMENT1 QUOTENO, PHA.QUOTE_TYPE_LOOKUP_CODE, TRUNC(PHA.CREATION_DATE) CDATE, PPF.FULL_NAME BUYER, H1.LOCATION_CODE SHIPTO, PHA.QUOTE_VENDOR_QUOTE_NUMBER QUOTEAMT , H2.LOCATION_CODE BILLTO , PHA.CURRENCY_CODE CURR, PV.VENDOR_NAME, PVS.ADDRESS_LINE1, PVS.CITY, PVS.ZIP FROM PO_HEADERS_ALL PHA , PER_ALL_PEOPLE_F PPF , HR_LOCATIONS H1 , HR_LOCATIONS H2, PO_VENDOR_SITES_ALL PVS, PO_VENDORS PV WHERE TYPE_LOOKUP_CODE = 'QUOTATION' AND PHA.VENDOR_ID = :P_VENDOR_ID AND PHA.AGENT_ID = PPF.PERSON_ID AND PHA.SHIP_TO_LOCATION_ID = H1.LOCATION_ID

  • 9

    AND PHA.BILL_TO_LOCATION_ID = H2.LOCATION_ID AND PHA.VENDOR_SITE_ID = PVS.VENDOR_SITE_ID AND PHA.VENDOR_ID = PV.VENDOR_ID LINE QUERY SELECT PLA.PO_HEADER_ID, MSI.SEGMENT1 ITEM, MSI.DESCRIPTION ITEMDESC, MC.SEGMENT1||','||MC.SEGMENT2 CATEGORY, PLA.UNIT_PRICE PRICE FROM PO_LINES_ALL PLA, MTL_SYSTEM_ITEMS_B MSI, MTL_CATEGORIES MC WHERE PLA.ITEM_ID = MSI.INVENTORY_ITEM_ID AND PLA.ORG_ID = MSI.ORGANIZATION_ID AND PLA.CATEGORY_ID = MC.CATEGORY_ID Purchase Order Interview Questions.

    1) What is the Flow of Purchasing Module 2) Where the types of Requisition and table 3) Types of Purchase orders and tables 4) What is the different between standard PO and Blanket PO 5) We have created a Item but which is not available in the pO what will be the problem 6) What are the types of Match approvals 7) What are the Receipt types 8) When we enter a Blanket Release data where it will be stored 9) If give the requisition no how to find out corresponding PO Numbers 10) If give the PO Number how to find out corresponding Receipt Numbers 11) What is Auto Create and Advantage 12) In which table we can find out

    i) Shipped Quantity ii) Received Quantity iii) Canceled Quantity

    13) Can we create Purchase order directly without i) Requisition, ii) RFQ iii) Quotation

    14) Can we have the Receipt without Purchase order 15) What are the tables for RFQ, Quotation, Purchase Order

    PL / SQL Procedure registration with Oracle APPS. Create or Replace ( Errorbuff OUT Varchar2(10), Retcode OUT Varchar2(20) , , , , ) Local Variable declaration Cursor Declaration Collection Declaration

  • 10

    Begin Space for Control Statements like IF LOOP s Procedure, Function and Package Calling DBMS_OUTPTU.PUT_LINE - ----- we will not use this function. FND_FILE.PUT_LINE(FND_FILE.LOG, Write message || Variable name) FND_FILE.PUT_LINE(FND_FILE.OUT, Write message || Variable name) Exception When Others then FND_FILE.PUT_LINE(FND_FILE.LOG, Write message || Variable name) End ErrorBuf: While registering the procedure in concurrent Programe we are suppose define errorbuf out parameter, which will give the error messages in the log file if any occurs in the procedure. Retcode: It returns the status of concurrent program either 0-Normal, 1-Warnining, 2-Error API Application Programe Interface FND_FILE: API is nothing but Application Programming Interface, instead of DBMS_OUTPUT package we will use FND_FILE.LOG to write in the log file, FND_FILE.OUTPUT to write in the output file. NOTE: We can register procedure or package procedure as concurrent Programe to do some DML validation and some other programming logic, we cant register function as concurrent Programe.

  • 11

    Registration Steps

    Develop the procedure and compile, specification of the procedure will be stored in the Database.

    Select System Administrator Responsibility - Crate executable with execution method as PL/SQL Stored Procedure

    Create concurrent Programe and attach Executable, Parameters, and Incompatibilities.

    Create the Request Group and the Concurrent Programe Attach the Request Group to the Responsibility Attach Responsibility to the User User submit Request from SRS window

    Simple Example Create or Replace Procedure EX20( Errorbuf out Varchar2, Retcode out Varchar2) as L_no number(8) default 1000, L_Name Varchar2(100) Default Mr. Rajan Bhatnagar, Begin

    FND_FILE.PUT_LINE(FND_FILE.LOG, Write message || L_no) FND_FILE.PUT_LINE(FND_FILE.OUTPUT, Write message || L-Name)

    Exception When Other then FND_FILE.PUT_LINE(FND_FILE.LOG, Error has occurred during the execution) End EX20 Procedure with parameters Develop a Procedure which will take two parameters

    1. Vendor ID 2. New Vendor Name

    System should find weather vendor ID is exist or not if it exists it should update the Vendor Name. Create or Replace Procedure VEN_UPDATE20( Errorbuf OUT Varchar2, Retcode OUT Varchar2, V_ID IN Number, V_Name IN Varchar2) as L_Flag Varchar2(10) Default Y; L_Name PO_VENDORS.VENDOR_NAME%TYPE; Begin Select Vendor_name INTO L_name from PO_vendors where vendor_ID=V_ID; Exception When NO_DATA_FOUND then FND_FILE.PUT_LINE(FND_FILE.LOG, There no records in the Table)

  • 12

    L_Flag:=E; When TOO_MENY_ROWS then

    FND_FILE.PUT_LINE(FND_FILE.LOG, There multiple records in the table) L_Flag:=E;

    End; If L_flag:= Y then Update PO_VENDORS SET VENDOR_NAME=V_NAME Where Vendor_id=V_ID; Commit FND_FILE.PUT_LINE(FND_FILE.OUTPUT, vendor name changed ) Endif; Exception WHEN OTHERS then FND_FILE.PUT_LINE(FND_FILE.LOG, Error occurred while updating) End VEN_UPDATE20;

    While registering the procedure, if we have user defined parameter we are suppose to define those parameter at the time of registering concurrent program, select parameter button enter sequence number parameter name attach value sets if required attach default types.

    Token filed will be disabled for procedures, it is enabled for only reports because report builder find variable may or may not be in the sequence order but procedures variable or permits will be always in the same sequence. First parameter values will be passed to the first variable second parameter values will be second variable and so on

    Exercise Develop a procedure to transfer the following details in to the Temporary Table. Create Table Quotation_temp( Total Quotations Number(8), Total amount Number(8)); Create Table Quotation_Details ( Qno Number(8), Qtype Varchar2(10), Cdate Date Buyer Varchar2(100), BillTo Varchar2(100), ShippTo Varchar2(100), Currency Number);

    Program will accept one parameter supplier name LOV Vendor Name Internally Vendor_ID should pass

    Based on the Vendor_id find the Quotation Details and load in the temp tables;

    NOTE:

  • 13

    1. Crate Two table 2. Define the cursor based on Vendor_ID 3. Transfer the data in to quotation temp and quotation details 4. Define local variable to count to calculation and transfer to quotation_temp

    SQL * LOADER - Oracle Tool It is one of the Oracles tool will be used to upload the data from flat files in to oracle database tables.

    1. Flat file or Data file: It contains the data in specific format it will be either text file (.txt) or excel sheet. (.txt, .dat, .csv Comma Separated Value)

    2. Control File: It contains SQL * Loader program contains data file path, database table

    name and column mapping and soon, once we develop the control file we will execute this, that time data will be transfer from file to Oracle Database Table, during this data transfer, the following files will be created. The extension of the control files is .ctl.

    3. Badfile: It contains the rejected records which are rejected by SQL*Loader, because of

    bad format or data type mismatch and so on. The extension of the bad file .bad.

    4. Discard file: It contains the rejected records which are rejected by control file if we have specified any condition in the control file if record is not satisfying the condition the complete record will be inserted in the discard file. The extension of file is .dis.

    5. Log file: It contains information about control file execution like, execution start time

    and end time, successful records count, bad records count, if there are any errors in the control file, those error messages will be available in segments, the extension of file .log.

    The Syntax of the control file is as follows: Load Data Infile Data file Path Insert into table Fields terminated by , or $ ( Column1, Column2, Column3, , , , , ,, ); And save as .ctl file For execution Command for .ctl file. SQLLDER username/password@hoststring Control = Class Exercise

    Connect to Scott Schema and create temporary table

  • 14

    Create table emp_details ( empno Number(8), Ename Varchar2(100), JDate Date, Deptno Number(8), Sale Number(8), Comm Number(8), Tax Number(8) ); Select * from emp_details

    Prepare data file and save in the local machine. Develop the control file like as follows and save it with extension .ctl

    Load Data Infile C:\20\load\emp.txt Insert into table emp_details Fields terminated by , ( Empno,

    Ename, JDate, Deptno, Sale, Comm, Tax );

    Go to Command Prompt select following path o D:\Oracle\proddb\8.1.7\bin>

    Execute the control file with SQLLDR Command SQLLDER SCOTT/TIGER@PROD

    Control = C:\20\LOAD\EMP.CTL

    To find path to execute the SQLLDR command is HOST Command from SQL prompt which will shows the path where we can execute control file

    o Select * from v$parameter. Control File INSERT - Table should be empty New records will be inserted. APPEND New records will be add for existing records TRUNCATE It will delete existing records and inserts new records from the file. .csv file (Comma Separated Valu) If data in excel sheet we can save that file as .csv file. If any string contains commas we will enclosed this will in double quotation in the control file we will specify the following statement syntax

  • 15

    Fields Terminated by , optionally enclosed by If one of the field is missing for the database column we can generate sequences and also we can use the some functions like to_char, NVL, Decode, Instr, Rtrim, Trim and so on Training Nullcols Inserts NULL columns if no data is there, we can not use any DDL, DML or TCL command in control file. LOAD DATA Infile C:\20\load\emp.txt. Truncate into Table emp_details Fields Terminated by , optionally enclosed Trailing Nullcols ( Empno emp_seq.nextval,

    Ename upper(:ename), Jdate Sysdate, Deptno, Sal, Commn, Tax )

    Fixed format control file exampled Sometimes data may found in fixed format - for example Empno - 5, Ename 10, Jdate 11, Deptno 2, Sal 5, Comm 3, Tax -3 If data is in the fixed format the control file will be developed in different format LOAD DATA Infile C:\20\LOAD\FIXED.TXT Truncate Into table emp_details ( Empno position(1:5),

    Ename position(6:15), Jdate position(16:26), Deptno position(27:28), Sal position(29:33), Commn position(34:36), Tax position(37:39))

    In control file itself we can specify the data and at the time of insertion we specify the specify the condition and we can also specify the discard file pat in control file it self - for example LOAD DATA Infile * Discardfile C:\emp_rejected.dis Truncate Into table emp_details When deptno=20 ( Empno position(1:5),

    Ename position(6:15),

  • 16

    Jdate position(16:26), Deptno position(27:28), Sal position(29:33), Commn position(34:36), Tax position(37:39))

    Begin Data Fsfsd fgdfdsf Fsfsfsf fdfdsfsd gsfsdfg gdgd Along with the SQLLDR command we can also use the few commands like as bellow LOAD Will be used to load the first N records SQLLDER username/password@Hoststring Load=10 SKIP TO skip the first n records SQLLDER username/password@Hoststring skip=10 ROWS It will be used to issue the commit after insert Nrecords for every 10 records internally auto commit will happen SQLLDER username/password@Hoststring rows=10 INIT.ORA file contains the default values for the commit point Data Uplaoding in to two tables Create Table emp1 ( Empno Number(5), Ename Varchar2(30), Job Varchar2(30)); Create Table dept1( Deptno Number(2), Dname Varchar2(30)); Positions of the data in datafile Empno 5, Ename 10, Job1, Deptno2, dname 7 DECODE Statement to be used to Code the A for Analyst M for Manager and Multiple data files can also be called in single control file Example control file Load data Infile C:\20load\multiple.txt Truncate Into table emp1 (Empno Position(1:5), Ename Position(6:15), Job Position(16:16) Decode (:Job ,A, Analyst,M,Manager)) Insert Into table dept1

  • 17

    When deptno:= ( Deptno Position(17:18), Dname Position(19:25)) Register Control file as Concurrent Program

    1. Develop the control file and move the both data file and control file in the server 2. CUS_TOP\11.5.0\BIN\ .CTL 3. Create executable by seleting the execution method as SQL*Loader 4. create concurrent Program attach executable, Parameters 5. Attach the concurrent program to the Request Group 6. Attach the Request group to the Responsibility 7. Attach Responsibility to the user will submit the request form SRS window.

    Example Create the table in APPS Schema Create table MTL_ITEMS( Item Varchar2(10), ItemDesc Varchar2(100), ItemCost Number(8), ItemTax Number(8), BasicCost Number(8)) Basic Cost to the calculated field in the Control file i.e. ItemCost ItemTax Development of Control file Load Data Infile * Insert into Table MTL_ITEMS Fields Terminated by , Optionally Enclosed by Trailing NULLcols ( Item, Item Desc, ItemCost, ItemTax, BasicCost (:Itemcost - :Itemtax)) Begin Data Fdfdsf sgdfg fgdgdgds dgdgdgd gfgdgd hgdghdg Fdfdsf sgdfg fgdgdgds dgdgdgd gfgdgd hgdghdg

    Move the .ctl file in the Inventory top i.e. BIN Directory And register the control file with applications. Go to System Administrator and register with the applications and concurrent program

    and method should be SQL * Loader Data file pat can changed dynamically

    o Infile &1 o We muse use the 1` degit

  • 18

    o We are allowed to submit only one parameter that should be data file path SQL * Loader with Parameters At the time of defining concurrent programe select parameter butiton define the parameter specify the &1 in the control file so that what ever the values we have passed that will be replaced in the control file. Interview Questions 1. How to issue the commit in the control file

    a. By suing ROWS Command 2. What are the types loading we have

    a. Direct Method Load b. Conventional method load (Default)

    3. How to upload the data in to multiple table at with time a. By using WHEN command

    4. Can we have the data in Fixed format and how to upload a. Yes, we can have fixed format that time we will use POSITION keyword

    5. What is the difference between Bad file and Discard file a. Both file contains rejected records Bad file contains records which are rejected by

    SQL*Loader and Discard file contains which are rejected by Control file.

    6. What are the SQL functions we can use in the control file a. TO_CAHR, TO_DATE, INSTER, SUBSTER, RTRIM, LTRIM, DECODE, NVL and so

    on.

    7. can we use user defined functions a. NO We cant user defined functions

    8. If control file rejected more than 10 records error the I would like to stop the process how to do it

    a. We have a file called INIT.ORA file where we will set parent called maximum errors allowed and max auto commit other parameter also.

    9. How to skip specific field data

    a. By using FILLER command In this position column will not accept the data and it inserts the NULL values.

    For example

    ( Empno, Ename ,

    JDate FILLER, Deptno);

    SQL * Plus

  • 19

    1. Develop the SQL Program (.sql) 2. Move the file form local machine to server in to respective path

    a. CUST_TOP\11.5.0\SQL\ .sql 3. Create executable execution method as SQL*PLUS 4. Crate concurrent program and attach executable and parameters 5. Attach concurrent program to the request group 6. Attach request group to the responsibility 7. Attach responsibility to the user. 8. Submit request from SRS Window

    SQL * Plus Program

    Column User_id format 9999999999 Column User_name Format A25 Column Cration_Date Format A11 Column &3 Format A50 Prompt SQL Report with User Details Select User_ID, User_Name, Creation_Date, &3 from fnd_user Where User_id between &1 and &2

    Save as the file .sql and create the parameters in Oracle apps systems administrator and column can be added dynamically NOTE

    We can define Maximum 100 parameter We are suppose to use &1, &2, &3 We are not suppose to skip the sequence WE can use same parameter values in multiple places in the script SQL * PLUS concurrent program to execute DDL and Connect to remote database and

    executes the scripts and so on. Submission of Concurrent Program from Back End because, sometimes we dont have the access to the front end. Executable Concurrent Program Request Group SRS We need to use the Application Programe Interface details in 115devg.pdf 21 chapter FND_PROGRAM.EXECUTABLE - Executable FND_PROGRAM.REQUEST - Concurrent Program FND_PROGRAM.PARAMETER - Attach Parameter FND_PROGRAM.REQUEST_GROUP - Create Request Group FND_PROGRAM.ADD_TO_GROUP - Add Concurrent Program R.G Submission of CP from Back End

  • 20

    SQL PL/SQL Report Report Triggers Forms Form Trigger FND_REQUEST.SUBMIT_REQUEST( ) - It will be used to submit the Request from Back end. Sample Program Declare l_request_id number(10); Begin Fnd_global.apps_initialize ( user_id, Resp_id Resp_appl_id); l_request_id:= Fnd_request.submit_request ( PO, Users Information Script, User Desc, , FALSE, 1000, 1200, Email_address); Commit; If l_request_id is != 0 Fnd_file.Put_line (Fnd_file.log Program successfully submitted Request ID is ||

    l_request_id); Else

    Fnd_file.Put_line (Fnd_file.log Program not successfully submitted); Endif; Exception When other then

    Fnd_file.Put_line (Fnd_file.log Error occurred during the program submission); End; NOTE: If we are submitting concurrent program from the Form Trigger we are suppose to pass the 100 parameter. If parameter are not defined, still we are suppose to pass NUL values Fnd_user Fnd_responsibility_vl - responsibility_key Fnd_application_vl - application_name Scheduling the Concurrent program We can submit the Concurrent program future date or date by using the schedule button in SRS window

  • 21

    1. As soon as possible: This is default option whenever we submit the request it will submit the as soon as possible

    2. Once: It will submit the rest only once for future date.

    3. Periodically: WE can specify the from_date and to_date to submit program periodically

    no of. Days months, hours, minutes and so on.

    4. Specific Days: If we want submit concurrent program in the specific days we write select this option

    5. Save this Schedule: This check box will be used to save the schedule and apply same

    schedule to other concurrent programs by selecting the button called Apply save schedule

    NOTE: After schedule the Concurrent program we can also cancel by selecting the cancel button. PROFILES Profile is one the changeable option it will change the way of application execution, when we crate user in oracle applications we will design the profile values for ever user by selecting any of this level. Profile levels User Responsibility Application Site

    1. Site Level: Site is the lowest profile level when we install Oracle Applications by default values will be assigned at this level, site level values will be applicable for all the users.

    2. Application Level: If we want to assign profile value to the specific application users

    then we will select this level specify the application name and assign the value, application level profile value will over write site level values.

    3. Responsibility Level: We will select the responsibility name assign the profile value,

    this is applicable only for the users, who are having access to the specified responsibility. Responsibility will overwrite the both application and site level values. Most of the profile will setup at responsibility level because it will be creating responsibility for ever position in the organization we will also assign the profile values based on position.

    4. User Level: We will select the user name and assign the profit value this is only for

    specific user which we have specified at will over write responsibility, application and site level values.

    Definition Application: It is collection of forms, reports and programs which are related for specific business functionality

  • 22

    Responsibility: It is also collection of forms, reports and programs which are related for specific position in the organization. Navigation

    Application Developer Profile - press enter

    We will find profile name and validation access levels, weather we can visible the values or we can update the values.

    Based on the access level we will go to system administrator open the profile form assign the profile values.

    Navigation

    System Administrator Profile System Press Enter

    Select profile name and profile level by default site select find button, it will shows profile values at 4 levels

    Important Profiles:

    1. GL Set of Books Name: It is one of the GL application profile, set of books is nothing but collection of currency, calendar, and chart of accounts. We will assign this profile values at responsibility level based on this currency and calendar and accounts will get change.

    2. MO: Operating Unit: This will be used to setup user operating unit name which

    operating unit user is working, when ever user login to the system by using this profile. System will understand the user operating unit (Branch Name)

    3. HR: Business Group: This profile will give the user business group which group user is

    working.

    4. HR: User_Type: This profile will give the user employment type which user is Permanent, Contract or consultant will be identified.

    USER_ID USER_NAME RESP_NAME RESP_ID RESP_APPL_ID All these are user personal profile values for user will be there whenever we create it contains the values. We cannot change the values. GL: St of Books Currency

  • 23

    Calendar Chart of Account Select Currency_code Currency Period_set_name Calendar Chatof_account_id Accounts Name SOBName From gl_set_of_books 18user GL:Set of Books Name Vision Operations(USA) USD 19User GL:Set of Books Name Vision Swedan SEK 20User GL:Set of Books Name Vison Itely ITL Go to Systems Administrator and open the profile form and select the profile name and assign the values.

    When we assign set of books to the user based on the that set of book name currency, calendar and accounts structure will be changed

    Create there different users go to systems administrator assign the profile values, select user level enter user name and profile name select find futon and assign the user level values.

    Login with the user name select GL responsibility open the Journals form, Journals Entry and press enter we will find the different currencies in currucy filed

    Personal Profile To find (N) Help Diagnosis Examine and press enter Select block as profile we will find profile names in the filed Profile values in the values field Technical Consultant Job Get - Procedure Value Function 2 APIs to be used FND_PROFILE.GET(Profilename, Local Variable); Local Variable:= FND_PROFILE.VALUE(PROFILE Name); APIs will be used to retrieve the profile values form Backend like SQL, PL/SQL, Forms, and Reports. NOTE: Here get() is a procedure and Values() is a function both will be used to get a profile value from the backend Example: In Select clause we cant use procedure that time we can use function. Simple PO Report

  • 24

    User Name : Responsibility Name : Set Of Books Name : Supplier Name Supplier ID PO Type Date Currency Query Select PHA.SEGMENT1 PONUMBER, PHA.TYPE_LOOKUP_CODE TYPE, TRUNC(PHA.CREATION_DATE) CDATE, PHA.CURRENCY_CODE CURRENCY From PO_HEADERS_ALL PHA Where VUNDER_ID=&PO_VENDOR_ID Report Development Process Lexical Parameters

    P_CONC_REQUEST_ID P_USER_ID P_RESP_ID P_SOB_NAME

    SRW.USEREXIT(SRWINIT) - Before Report Trigger SRW.USEREXIT(SRWEXIT) - After Report Trigger And adjust the margin and design the layout Before Report Trigger :P_RESP_ID := FND_PROFILE.Value(Resp_name) User Name Username Resp_name Responsibility name i.e. personnel profiles GL_SET_BOOKS_ID MO: Operating Unit ORG_ID Access the Profile values from the reports Define find variable to store the profile values, go to before report trigger call the following APIs, then use the find variable either in the layout or in the report builder FND_PROFILE.GET(USER_NAME, :P_USER_ID) FND_PROFILE.GET(RESP_NAME, :P_RESP_ID) :P_SOBNAME := FND_PROFILE.VALUE(GL:SET_OF_BOOKS_NAME) PL/SQL Procedure as Concurrent Program Temp Table Perfomr_taart User_name Varchar2(50) Resp_name Varchar2(50) SOBName Varchar2(50) ORGName Varchar2(50)

  • 25

    Develop the procedure and register as Concurrent program and user submit the request form SRW window system should capture the dynamically and inserts in to the temp table :X:= FND_PROFILE.VALUE(ORG_ID) Select name from HR_OPERATING_UNITS Where organization_id=:x Chapter 15, 115devg.pdf FAQs

    1. What is profile 2. What are the profiles you have come across in your experience 3. Profile levels in sequential order 4. How to get profile value from Backend 5. How to pass profile values as default in parameter

    Default Types Constant Segment SQL Profile - Concurrent Programe window Parameter

    At the time of defining parameter select default type as profile and give the profile name in the default values field.

  • 26

    Multi Org Multi Org is nothing but implementing multiple organization under single oracle APPS implementation. We will define the multi org levels like follows:

    Business Group - Top level org where employee will be define

    Set of Books - Currency, Calendar, Chart of accounts Financial Entities

    Legal Entity - Where company is going to create Income Tax

    Documents to Government

    Operating Unit - Where Company will procure, sell, pay, receive, stock

    Inventory Organization - Where company will store the product

    Sub inventories

    Stock Locations

    Items

    -

    Under the Inventory it will come

    Business Group: It represents the highest level in the organization structure, it can be a major division or operating company or consolidated enterprises, Business Group secure human recourses information. Example: When we request list of employees assigned to the business group where organization is a part Set Of Books: It is a financial reporting entity it uses particular functional currency, chart of accounts and accounting calendar, Oracle General Ledger application secures this transaction information like, journal entries, balances, we will use the Set of Books to capture these financial information. Legal Entity: it is a legal company for which we prepare physical or tax reports and we will submit company flanking sheet to Government. Operating Unit: It is an organization where company is going to do the main business operations like sales, purchasing payments, receiving and son, it may be a sales office or

  • 27

    division or department, operating unit information will be secured by following applications like PO, AP, AR, OM, CM Inventory Organization: It is an organization for which we will track Inventory transactions and balances, Inventory Organization means warehouse, distribution center, manufacturing plants and sales offices, the following application secures information by Inventory organization

    - Oracle Inventory - Bills of Material - Work in process - Enginering - Capacity - MRP and so on

    Again we will define Inventory Organization as 2 levels

    1) sub Inventory 2) Stock location inside of this location we will keep the items.

    Advantages or Major functions

    Data Secure: We can assign users to the particular organization when ever user logon to the application then we can get the data access, which is related to their organization

    Multiple Organizations Reporting: We can setup Oracle applications

    implementation to allow the reporting across operating units we can allow the reports either at SOB level or legal entities level or operating unit level

    We can sell the products from one legal entity and ship the products from

    another level entity that time we can easily create financial transactions.

    We can receive the good from the suppliers in any Inventory organization. Example: A branch employee will create the PO then we can rece4ive the material in B branch Inventory organization but these two organization should be defined under same set of books.

    When employee creates internal requisitions in one organization thesewe can

    ship the materials from another organization with corrent inter company inventory.

    115multiorg.pdf - Implementing Multiple Organizations Chapter1 and 4 - multiorg.xls.

  • 28

    Multi Org Tables Column Text PO_HEADER_ALL ORG_ID Select * from po_header_all

    where org_id=client_info

    PO_LINES_ALL ORG_ID Select * from po_header_all

    where org_id=client_info

    AP_INVOICES_ALL ORG_ID Select * from ap_invoices_all

    where org_id=client_info

    AP_CHECKS_ALL ORG_ID Select * from ap_checks_all

    where org_id=client_info

    OE_ORDER_HEADERS_ALL ORG_ID Select * from oe_order_header_all

    where org_id=client_info

    Multi Org table contains multiples organization data. This table names are goint to end with _all and this table contains common column called org_id

    Whenever user login to the systems by using MO:OPERATING UNIT profile, systems will understand user operating unit code (ORG_ID)

    Multi Org views These are created based on, multi org table having the where clause like where org_id=client_info. If we are using multi org views in the RICE components, we will get the data from the database which is related for the user organization. Ex: PO_HEADERS, PO_LINES, AP_INVOICES, AP_CHECKS, OE_ORDER_HEADERS

    CLIENT_INFO: It is one of the RDBMS variable, it contains user operating unit code (org_id) whenever user login to the application

    o Select * from hr_operating_units (you can get all the branch codes) To create Operating units navigation

    o HRMS Responsibility Work Structures - Organization Description In before report trigger we will write SRW.USER_EXIT(FND SRWINIT) it will initialize

    the user profile values (MO:OPERATING UNIT) Create 3 users, assign to them different branches by using MO:Operating Unit profile and develop the report, use the multi org tables and register it as concurrent program and submit from SRS window form 3 users we will get all the operating units data in the output instead of multi table, use multi org view. Submit request from SRS. It will display the output which is related for user organization. If we are not using the user exit (FND SRWINIT) system will not initialize user profile values including MO operating Unit profile that time, client_info variable values is null. In SQL & PL/SQL We need to use API SQL> select count(*) from PO_HEADERS_ALL 2777 POs are created form multiple organizations

  • 29

    SQL> select count(*) from PO_HEADERS output 0 becoz system doesnot know the branch working for which branch SQL> Begin FND_CLIENT_INFO.SET_ORG_CONTEXT(204) END; SQL> select count(*) from PO_HEADERS - Now it is showing the 1645 Pos fro branch 204 Begin FND_CLIENT_INFO.SET_ORG_CONTEXT(FND_PROFILE.VALUE(ORG_ID) END It will retrieve User ORG_ID value Table shows details about the Multi Org structure table

    Organization Name Table Profile Column

    Business Group HRFV_BUSINESS_GROUPS HR:Business Group ID BUSINESS_GROUP_IDSet Of Books GL_SET_OF_BOOKS GL:Set of Books Name Legal Entity HR_LEGAL_ENTITIES Operating Unit HR_OPERATING_UNITS MO:Operating Unit ORG_ID

    Inventory Organization

    ORG_ORGANIZATION_ DEFINITIONS MFG_ORGANIZATION_ID ORGANIZATION_ID

    SubInventory MTL_SECONDARY_ INVENTORIES

    Stock Locations MTL_ITEM_LOCATIONSQ Items MTL_SYSTEM_ITEMS Requstions RFQ Quotations PO PO Receipts

    While developing or customizing the RICE component we will be using Multiorg views.

    We are not supposed to use the Multi org tables. By suing the following select statement we can find whether multi org is implemented

    successfully or not o Select multi_org_flag, release name from fnd_product_groups

    Multi_org_flag Releasename Y 11.5.7

    Y Implemeted successfully (Business Group, I.E., Set of Books, operating Unit, Inventory organziaiton)

  • 30

    BUSINESS_GROUP_ID: This at Business group level we can find them common column in all the table, which are in HRMS tables like

    o PER_ALL_PEOPLE_F o PER_JOBS o PER_GRADES o PER_POSITIONS

    ORG_ID: It is at operating unit level it we will find this common column in all the table at operating unit level like

    o PO_REQUESITION_HEADERS_ALL o PO_HEADERS_ALL o PO_DISTRIBUTION_ALL

    NOTE: But PO receipts functionality will come at Inventory organization level. Because we are crating receipt means we are receiving the goods from supplier. We will be receiving the material at Inventories (stories, gowdans ) only. Example: RCV_SHIPMENT_HEADERS table is not having the _ALL it is not having ORG_ID column

    ORGANIZATION_ID: It is at Inventory Organization level we will find all the manufacturing tables column this ORGANIZATION_ID column including PO Receipts Tables

    o MTL_SYSTEM_ITESM_B o WIP_ENTITITES o BOM_RESOURCES o BOM_DEPARTMENT

    PO_VENDORS is not having _ALL PO_VENDORS_SITES_ALL is having _ALL Supplier is global we can access from any organization Supplier site is organization specific and we create site based on the user ORG_ID sites will retrieved. FAQs

    1. What is application hierarchy or Multi org flow? 2. What is Business Group? 3. What is legal entity and operating unit 4. What is meant by multi org table 5. What are module will come at operating unit level 6. Will PO Receipt will come tat Operating Unit level or Inventory Organization level? 7. What is difference between OR_ID and ORGANIZATION_ID? 8. Why there is no _ALL for PO_VENDORS table? 9. How to implement multi org in reports? 10. How to populate ORG_ID from SQL prompt? 11. What is meant by Client_info? 12. When user login in to the system how the system will identify user operating unit?

  • 31

    Flex Fields Flex Field is nothing but a normal field but it is a ore flexible in the application either to extend the form functionality or to capture the key information We have 2 types of flex fields in oracle applications 1. Descriptive Flex Fields , 2. Key Flex Fields

    1. Descriptive Flex Fields: DFF will be used to capture extra information from the end user without changing form code and without altering database table

    a. We will use the attribute column while working with DFF b. We will find all the DFF in Application Developer Responsibility

    i. N Flex Filed Descriptive Register c. To find DFF in form PO Requisition Form d. Customization of DFF

    i. Open the form in application (PO, AP) we will find the fields which are enclosed with [ ] it is nothing but a DFF we can enable this DFF by using Application Developer Responsibility

    ii. Find the DFF title from following navigation 1. Help Menu Diagnostics Examine and enter password as apps

    and Block name $Descriptive Flex field$ we will find the list of DFFs in the fields select Field: PO_REQ_HDR_DESCRIPTIVE_F4 we will find the DFF in the value fields Value: Requisition Header (Oracle Purchasing)

    iii. Copy the value go to Application Developer 1. N Flex field Descriptive Segments and enter and press F11

    enter the title Ctrl + F11 iv. Un check the checkbox called Freeze Flex field definition select segments

    button enter the column names select attribute column and value set and save the transactions.

    v. Check the check box called Freeze Flex Field Definition click on compile button internally system will submit concurrent program (Flex field view Generation) to compile flex field it will generate one flex field view to capture the data.

    vi. The view name will be database table name _DFV vii. Go to the form where DFF is attached, place the cursor, it will open DFF

    form enter the data save it go to backend query the records. Select Attribute3 Buyertype, Attribute9 Buyerlocaton, Attribute13 Last Date From PO_REQUISITION_HEADER_ALL Where segment1=15467

    viii. Create the value set in system administrator; attach the value set at the time of creating DFF column name in the value set field.

    ix. We can make the DFF column is optional or mandatory by selecting required check box in the segments form.

  • 32

    x. Context Field: While creation of DFF we can define multiple structures based on the user selection we can change the DFF structure. While defining the context field we will enter context field values for every context value there will be a structure here we can use the entire attribute column from attribute 1 to 15.

    1. NOTE: One we use the attributes in one structure we can use the same attributes in another structure, because user can enter only one structure details at a time.

    2. NOTE: Once we enter the value in the context field it will be stored in the Database column called Attribute Category

    xi. Global Data Elements: While defining the context field we will enter the context field values based on the value we can change the DFF structure if we want to define any field globally we will select option called Global Data elements, select se4gments enter the details.

    1. Once we use the attribute column in Global Data elements it will not be available for the context field values.

    2. Key Flex Field : These will be used capture key information which is in the code

    language for every code there will be a specific meaning in the application we will find all the KFF s in the Application Developer Responsibility. Navigation Flex field Key Register and enter we can find the structure in the segments form Navigation Flex Field Key Segments and press enter when we enter the data in KFF it will be stored in segments columns we will find segments column around 30 based on the requirement.

    Differences between DFF and KFF

    Item Location

    Item Quantity

    Item Attributes

    Sub Inventory

    Stock Location

    Available Qty

    Reserved Qty

    Purchasable Item

    Inventory Item

    Customer Item

    Production Item

    Item Details

    Inventory

  • 33

    DFF KFF 1. DFF will be used to capture EXTRA

    Information 1. KFF will be used to capture KEY

    Information 2. Attribute columns will be used 2. Segment columns will be used 3. We can register MAX DFF 3. We have 29 built in KFF we are not

    suppose to create new KFF 4. DFF will be accept what ever Data we

    enter 4. KFF we can define rules to capture

    valid data 5. WE have context field 5. WE have no Context field 6. DFF data will be stored in Attribute

    Columns 6. DFF codes will be stored in segments

    KFF description will be stored in FND_FLEX_VALUES tables.

    To find a table of DFF go to the segment form of DFF System Last Query Value - Quary will get KFF_List.xls file contains all the important KFF to study

    KFF name Application Name Table Staructure Column

    Accounting Flexfield GL GL_CODE_COMBINATIONS CHART_OF_ACCOUNTS_IDAssets KFF FA FA_ASSET_KEYWORDS No Category Flexfield FA FA_CATEGORIES_B No Location Flexfield FA FA_LOCATIONS No Sales Tax Location Flexfield AR AR_LOCATION_COMBINATIONS LOCATION_STRUCTURE_ITerritory Flexfield AR RA_TERRITORIES No Item Catalogs INV MTL_ITEM_CATALOG_GROUPS no Item Categories INV MTL_CATEGORIES_B STRUCTURE_ID Stock Locators INV MTL_ITEM_LOCATIONS ORGANIZATION_ID System Items INV MTL_SYSTEM_ITEMS_B ORGANIZATION_ID

    To Capture the Key Information We can query the Information at any level Data entry to the user will be very easy System will accept valid accounting transactions GL_CODE_COMBINATION All Codes GLFV_CHARTS_OF_ACCOUNTS Structure Details

    Accounting Key Flex Field:

    This is one of the built in KFF available in GL application to capture accounting transactions.

  • 34

    Accounting KFF is nothing but Chart of accounts in the set of books when ever we assign the profile (GL: Set of Books Name) to the user based on the this profile system will assign Accounting KFF to the User.

    ******* Set of Books

    o Currency o Calendar o Chat of Account

    ******* Select Name,

    Currency_code Currency Period_set_name Calendar Chat_of_account_id ChartOfA/C From GL_SET_OF_BOOKS ******* 16USER GL:SET OF BOOKS Vision Operation(USA) USD 101(5) 17USER GL:SET OF BOOKS Vision Italy ITL 50173(4) 18USER GL:SET OF BOOKS Vision Belgium BEL 50714(6) ******* Structure Column

    While defining the KFF we will find structure column field if it is null value then KFF has got only one structure, if there is a structure column that will find multiple structure, open the segments form query the records based on KFF title, we will find structure details

    For Accounting KFF structure column is CHART_OF_ACCOUNTS_ID And we will get all the structure details from this table GL_CHARTS_OF_ACCOUNTS. All the accounting KFF transaction will be stored in the data based table called

    GL_CODE_COMBINATIONS Developing the Reports on KFF - Process 1) Call the user ext from before report trigger SRW.USER_EXIT ( 'FND SRWINIT'); 2) Call another User Exit from After Report Trigger SRW.USER_EXIT ('FND SRWEXIT'); 3) Define the following parameters

    1) P_CONC_REQUEST_ID 2) P_FLEXDATA

    3) P_STRUCT_NUM segment1||'\n'||segment2||'\n'||segment3||'\n'||.......||'\n'||segment30 4) Call another User exit from before report trigger SRW.USER_EXIT ('FND FLEXSQL CODE = "GL#" NUM = ":P_STRUCT_NUM"

  • 35

    APPL_SHORT_NAME = "SQLGL" OUTPUT = "P_FLEXDATA" MODE