Sunday, 2 August 2015

PL/SQL FAQ'S IN INTERVIEWS

1)How to execute DOS Commands from SQL Prompt?

ans) By using HOST we can execute the dos commands

2)What are CBO and RBO? What is the diff between these two?

ans)   Cost Based optimization
       for details you can go to this link  http://docs.oracle.com/cd/B10501_01/server.920/a96533/opt_ops.htm#1656
  
       Role Based optimization
       for details you can go to this link  http://docs.oracle.com/cd/B10501_01/server.920/a96533/rbo.htm#721


3) What is the RND and WND?

ans) RND – Read No Database
     WND – Write No Database  


4)  What is CURSOR? What are the Cursor types? What are cursor declaration steps?

ans) Cursor is nothing but a private SQL work area which is used to store process information.

Types: 1.Implicit, 2.Explicit   

cursor declaration steps:
--------------------------    1. Declare
                              2. Open
                              3. Close
Cursor Attributes:
------------------
1. %not found
2. %found
3. %is open
4. %row count

5) What is the diff between Implicit and Explicit and Ref Cursor?

ans)

1.Implicit – It is defined by the Oracle Server for queries that return only one row.
2.Explicit – Which is defined by the Users, for queries that return more than one row
3.Ref – With this we can change the select statement dynamically.
        for this first we have to declare ref cursor. and we have to associate a select
        statement at run time. before going to associate another select statement
        we have to close the cursor and again we have to open cursor.


6) What is Procedure and what is Function?
    
ans) Procedure: Is used perform an action
     Function: Is used to compute a value

procedure:
---------- generally we will use procedures when we have to perform dml operations and
procedure no need to return a value.

function:
---------   generally we will use functions to perform computation's and function
must return a value.

           Procedure                                                      function

1.may or may not return a value.                            1.Function must return a value.
2.can't call from select statement.                           2.can call from select statement.
3. It can return more than one value through          3. It can return only one value.
   OUT Parameter.


7). If we drop the table which we have used in the procedure do we need to recompile
 the procedure then how?

ans)  No need to Recompile the procedure.
      error: <SCHEMA>.<PROCEDURE NAME> INVALID.

 to recompile the procedure, use the below command.
 - ALTER PROCEDURE proc1 compile;

8). How to get the Procedure Source code from database?

ans) To get the procedure source code from the database u need to query the below the query

     select TEXT from user_source where object_type='PROCEDURE' and object_name='PROC1';


9). What are the other objects we can group inside of Package?
   
ans) Packages provide a method of encapsulating related procedures, functions, and
     associated cursors and variables together as a unit in the database.

Applications for Packages:

Packages are used to define related procedures, variables, and cursors and are
often implemented to provide advantages in the following areas:

    1.encapsulation of related procedures and variables

    2.declaration of public and private procedures, variables, constants, and cursors

    3.separation of the package specification and package body

    4.better performance:
     --------------------
                          Using packages rather than stand-alone stored procedures results
                          in the following improvements:

    1.The entire package is loaded into memory when a procedure within the
      package is called for the first time. This load is completed in one operation,
      as opposed to the separate loads required for standalone procedures.
      Therefore, when calls to related packaged procedures occur,
      no disk I/O is necessary to execute the compiled code already in memory.

    2.A package body can be replaced and recompiled without affecting the specification.
      As a result, objects that reference a package's constructs
      (always via the specification) never need to be recompiled unless
      the package specification is also replaced. By using packages,
      unnecessary recompilations can be minimized,
      resulting in less impact on overall database performance.

10). Can we declare Procedure directly in the package body without declaring
in the package specification?

ans) No, We can not declare procedure directly in package body.

11).Can we commit inside of trigger? How to delete the Trigger?
How many triggers we can use maximum?

ans:
===    yes, we can issue commit inside of the trigger body by using the
autonomus transactions.
 drop trigger j_trg;
There is no limit on triggers.

12). What are SRW Packages we have?

ans:
----
SRW.DO_SQL (DDL &DML STMT).
SRW.RUN_REPORT.


13).How to recompile the invalid objects?

ans).  You can invoke the utl_recomp package To recompile the invalid objects.

                    Schema Level
                  -------------------
 EXEC UTL_RECOMP.RECOMP_SERIAL('SCOTT');
 EXEC UTL_RECOMP.RECOMP_PARALLEL(4, 'SCOTT');

                    Database Level
                  --------------------
 EXEC UTL_RECOMP.RECOMP_SERIAL( );
 EXEC UTL_RECOMP.RECOMP_PARALLEL(4);

           using job_queue_processes_ value.
      ------------------------------------------

 EXEC UTL_RECOMP.RECOMP_PARALLEL( );
 EXEC UTL_RECOMP.RECOMP_PARALLEL(NULL, 'SCOTT');


14) How to find the invalid objects?

ans). to find the invalid objects we have to execute the following query.

       select owner
             ,object_type
             ,object_name
       from dba_objects
       where
            status != 'VALID'
       ORDER BY
            owner,
            object_type;

     Here is a script to recompile the  invalid pl/sql packages, procedures and functions.
     You may need to run it more than once for dependencies, if you get errors from the script.


        INVALID.SQL

      
 Set Heading off;
 Set feedback off;
 Set lines 999;

   Spool  run_invalid.sql

       select 'ALTER '|| OBJECT_TYPE || ' ' ||OWNER || '.' || OBJECT_NAME || ' COMPILE;'
FROM  DBA_OBJECTS
WHERE STATUS= 'INVALID'
AND OBJECT_TYPE IN ('PACKAGE','FUNCTION','PROCEDURE');

SPOOL OFF;

  set heading on;
  set feedback on;
  set echo on;

@run_invalid.sql

Monday, 20 July 2015

How to compile the form in server ?

to compile form in server first you have to change the directory to where you have to place the .fmx file in server.
frmcmp_batch module=xxx.fmb  userid=apps/apps  compile_all=special batch= yes

What Is Cluster in Oracle ?


A Cluster is a schema object used to store related information from multiple tables at stable physical location in a single data block.

  •  we need to create a cluster with cluster column then, we need to create a index on cluster column. this index is called cluster index.
  • Create the related tables and store them in a cluster by using a cluster clause.
  • use the cluster clause at theend of all column definitions in cluster tables.
EX:
===

create cluster personel1 (dept number(4))
size 512
storage (initial 100k next 50k);


cluster index:
==========

create index indx_personel1 on cluster personel1;


adding tables to a cluster:
====================

create table dept_10
cluster personel1(dept)
as select * from emp where deptno=10;

create table dept_20
cluster personel1(dept)
as select * from emp where deptno=20;

WHAT IS DIFFERENCE BETWEEN WHERE CLAUSE AND HAVING CLAUSE ?

WHERE                                                                                                                 HAVING
=================================               ================================
1. WHERE CLAUSE RESTRICT THE ROWS        1.HAVING CLAUSE RESTRICT THE ROWS
RETURNED BY THE SINGLE ROW FUNCT           RETURNED BY THE GROUP FUNCTIONS.
TIONS.

2.WHERE CLAUSE SHOULD APPEAR                 2.HAVING CLAUSE SHOULD APPEAR
BEFORE GROUP BY CLAUSE.                                  AFTER GROUP BY CLAUSE.

How to display the ename from emp, which contains '%' and '_' in ename ?

'%'  and  '_' are special characters in oracle.   To compare these characters in the ename, we need to work with the ESCAPE clause.

EX:
==

select ename from emp where ename like '% /%'  escape '/';

Friday, 17 July 2015

can we apply null values and duplicate values to foreign key?

yes, we can insert null values into foreign key column. and we can also insert duplicate values into foreign key column which are there in unique key column or primary key column.

How to delete the duplicate values from table ?

To Delete duplicate values from the table we have to execute  the  query given below.

delete from emp where rowid not in (select min(rowid) from emp group by empno);

How to get duplicate values from table ?

select * from emp where rowid not in (select min(rowid) from emp group by empno);

Tuesday, 14 July 2015

why we use CDATA in XML Template ?

With out CDATA we can not use special characters in xml Template like >, <, &,  ', " ... 

how to rebuild the index?

alter index  <index_name>  rebuild;

alter index  <index_name>  rebuild online;

ex: Alter index  j_index  rebuild;

ex: Alter index  j_index  rebuild  online;

how to compile the objects ? (or) how to make the objects invalid to valid ?

alter <object_type>   <owner.object_name>  compile:

ex:    alter  view  j_view  compile;

Monday, 13 July 2015

How to find invalid objects ?

select object_name,
          object_type
         ,owner
         ,status
from dba_objects
where status='Invalid';

How to know the responsibilities attached to the user from back end ?

select fr.responsibility_id,
          fr.responsibility_name,
          fu.user_name,
          furgd. start_date,
          furgd. end_date
from fnd_responsibility_tl fr,
         fnd_user fu,
         fnd_user_resp_groups_direct furgd
where     fr.responsibility_id=furgd.responsibility_id
        and fu. user_id = furgd. user_id
and fu. user_name= 'xxxxx';


or


select fr.responsibility_id,
          fr.responsibility_name,
          fu.user_name,
          furgd. start_date,
          furgd. end_date
from fnd_responsibility_tl fr,
         fnd_user fu,
         fnd_user_resp_groups_direct furgd
where     fr.responsibility_id=furgd.responsibility_id
        and fu. user_id = furgd. user_id
and fu. user_id=1032;

Sunday, 12 July 2015

Overview of Oracle Alerts in oracle e_business suite


O2C COMPLETE CYCLE WITH TABLES

ORDER MANAGEMENT:
==================


ITEMS
CUSTOMER
SALESREP

TO CREATE ITEM GO TO INVENTORY RESP

->MASTER ITEMS ->ITEMS.
THEN ->INVENTORY.
THEN ->PURCHASE-> CHECK PURCHASABLE.
THE ->ORDER MANAGEMENT -> CHECK CUSTOMER ORDERED
                          CHECK INTERNAL ORDERED
                          CHECK RETURNABLE
                          CHECK RMA INSPECTION REQUIRED
                          CHECK FINANCING ALLOWED.

THEN ->INVOICING -> CHECK INVOICABLE ITEM.


TRANSACTIONS -> MISCELLINEOUS TRANSACTIONS ->TYPE:MISCELLINEOUS RECEIPT.

INVENTORY TABLES:
==================


SELECT * FROM MTL_SYSTEM_ITEMS_B MSIB WHERE MSIB.SEGMENT1='SIM_CUTTER'--IT HAS COMPOSITE PK.

HERE IT SHOWS DUPLICATE BECAUSE I ASSIGNED THIS ITEM FOR 2 ORGANIZATIONS.


INVENTORY_ITEM_ID=21795 AND ORGANIZATION_ID=204

TO FIND ONHAND QUANTITY:
========================

SELECT * FROM  MTL_ONHAND_QUANTITIES WHERE INVENTORY_ITEM_ID=21795 AND ORGANIZATION_ID=204

TO KNOW TRANSACTION_TYPES:
===========================

SELECT * FROM MTL_TRANSACTION_TYPES  WHERE TRANSACTION_TYPE_ID=52

ANY MATERIAL TRANSACTION:
=========================

SELECT * FROM MTL_MATERIAL_TRANSACTIONS WHERE INVENTORY_ITEM_ID=21795 AND ORGANIZATION_ID=204

OR

SELECT * FROM MTL_MATERIAL_TRANSACTIONS WHERE PICK_SLIP_NUMBER=146338--TRANSACTION_ID IS PK.


SELECT * FROM WSH_DELIVERY_DETAILS

SELECT WND.SOURCE_HEADER_ID,WND.* FROM WSH_NEW_DELIVERIES WND WHERE WND.SOURCE_HEADER_ID=190434

SELECT * FROM WSH_DELIVERY_ASSIGNMENTS WHERE DELIVERY_ID=3777372




CUSTOMER CREATION:
=====================

GO TO ORDER MANAGEMENT SUPER USER,VISION OPERATIONS(USA).

NAVIGATION:
-=============

->CUSTOMERS ->STANDARD -> CUSTOMER TYPE: ORGANIZATION ->PRESS CREATE(BUTTON) -> ENTER THE DETAILS. ->APPLY(BUTTON).

IN AR MODULE TCA IS IMPLEMENTED.

TCA(TRADING COMMUNITY ARCHITECTURE.):
=====================================

TCA IS DATA MODEL WHICH WILL COMBINE  ALL THE TRADING PARTNER DETAILS LIKE CUSTOMER,BANK,EMPLOYEE,SUPPLIERS.

HERE CUSTOMER IS NOTHING BUT PARTY


CUSTOMER TABLES:
===================

SELECT * FROM HZ_PARTIES WHERE PARTY_NAME='JM_ORACLE_INSTITUTE'--PARTY_ID IS PK.

SELECT * FROM HZ_PARTY_SITES WHERE PARTY_ID=411679--PARTY_SITE_ID IS PK.

SELECT * FROM HZ_CUST_ACCOUNTS WHERE PARTY_ID=411679--CUST_ACCOUNT_ID IS PK.

SELECT * FROM HZ_CONTACT_POINTS -- CONTACT_POINT_ID IS PK.

SELECT * FROM HZ_LOCATIONS-- LOCATION_ID IS PK.

SELECT * FROM HZ_CUST_PROFILE_CLASSES -- PROFILE_CLASS_ID IS PK.

SELECT * FROM HZ_CUST_SITE_USES_ALL --SITE_USE_ID IS PK.


SALES REP:
==========

SELECT * FROM RA_SALESREPS_ALL--SALESREP_ID IS PK.

HERE HZ MEANS HUMAN ZONE.



TO CREATE SALES ORDER:
========================

GO TO ORDER MANAGEMENT SUPER USER VISION OPERATIONS (USA)


SALES ORDER TYPES:
==================

8 TYPES.

1.STANDARD
2.MIXED
3. QUOTATION
4.BACK ORDER
5. ISO INTERNAL SALES ORDER
6.BACK TO BACKORDERS
7.DROP SHIPMENT
8.RMA-CREDIT



NAVIGATION:
===========

->ORDERS,RETURNS ->SALES ORDERS ->ENETER THE DETAILS AT "MAIN" TAB.
-> ENTER THE DETAILS AT "OTHERS" TAB. AND MOVE TO "LINES" TAB. AND ENTER THE DETAILS.

->PRESS "BOOK ORDER" BUTTON.


COPY THE ORDER NUMBER.




SALES ORDER TABLES:
===================

SELECT OOHA.FLOW_STATUS_CODE,OOHA.*  FROM OE_ORDER_HEADERS_ALL OOHA WHERE OOHA.ORDER_NUMBER=66413--HEADER_ID IS PK.

SELECT OOLA.FLOW_STATUS_CODE,OOLA.* FROM OE_ORDER_LINES_ALL OOLA WHERE OOLA.HEADER_ID=190432--LINE_ID IS PK.

COLUMN "FLOW_STATUS_CODE" IT WILL SHOW THE STATUS OF THE SALES ORDER.


SELECT WDD.RELEASED_STATUS,WDD.* FROM WSH_DELIVERY_DETAILS WDD WHERE WDD.SOURCE_HEADER_ID=190432

RELEASED STATUS-> R-READY TO RELEASE
                  S-RELEASED TO WARE HOUSE.
                  Y-PICK CONFIRMED.
                  C-SHIP CONFIRMED.
               


SELECT * FROM MTL_RESERVATIONS WHERE INVENTORY_ITEM_ID=21795 AND ORGANIZATION_ID=204

SELECT * FROM WSH_DELIVERY_ASSIGNMENTS WHERE DELIVERY_ID=3777372



BATCH(IN RELEASES) 3914028 IN RELEASE FORM.
OR
"PICK BATCH" IN  "PICK SLIP REPORT" OUTPUT FILE IN SRS WINDOW
OR

"MOVE ORDER" IN  "PICK SLIP REPORT" OUTPUT FILE IN SRS WINDOW



TO RELEASE ITEMS:
===================

->SHIPPIING -> RELEASES SALES ORDERS ->RELEASE SALES ORDERS.->ENTER THE DETAILS.

WHEN WE DO RELEASE THE ITEMS IN BACKGROUND 3 PGMS WILL RUN IN THE SRS WINDOW.

1.Pick Selection List Generation
2.PICK SLIP REPORT
3.Shipping Exceptions Report

MOVE ORDER TABLES:
===================

WE WILL SEE OFTER RELEASES STEP.

HEADERS:
========

WHERE REQUEST_NUMBER IS NOTHING BUT "MOVE ORDER" OR "PICK BATCH" IN PICK SLIP REPORT OUTPUT FILE IN SRS WINDOW.


SELECT * FROM MTL_TXN_REQUEST_HEADERS WHERE REQUEST_NUMBER='3914028'--HEADER_ID IS PK.

LINES:
======

SELECT * FROM MTL_TXN_REQUEST_LINES WHERE HEADER_ID='3914029'

HERE U CAN SEE THE ITEMS MOVED FROM WHERE TO WHERE.
BY USING THE COLUMNS "FROM_SUBINVENTORY_CODE" AND "TO_SUBINVENTORY_CODE"

TRANSACTION_TYPE_ID=52


SELECT * FROM MTL_TRANSACTION_TYPES WHERE TRANSACTION_TYPE_ID=52

HERE WE CAN FIND OUT THE TRANSACTION TYPE IN "TRANSACTION_TYPE_NAME" COLUMN.


SO TRANSACTION_TYPE_ID=52 IS 'Sales Order Pick'


SELECT * FROM MTL_MATERIAL_TRANSACTIONS WHERE PICK_SLIP_NUMBER=146338--TRANSACTION_ID IS PK.

WE CAN GET THE "PICK_SLIP_NUMBER" IN "PICL SLIP REPORT" AS A "Pick Slip:146338 ".


SELECT * FROM MTL_ONHAND_QUANTITIES WHERE INVENTORY_ITEM_ID=21795 AND ORGANIZATION_ID=204


TO SHIP ITEMS:
=================

COPY ORDER NUMBER AND GOT TO
->SHIPPING ->TRANSACTIONS ->ENTER THE DETAILS. ->ORDER NUMBER: CTRL+V ->FIND ->THEN

GO TO DELIVERY TAB ->PRESS "SHIP CONFIRM"(BUTTON) ->OK ->OK.

WHEN WE DO THE SHIPPIING IN BACKGROUND 5 PGMS WILL RUN WE CAN FIND THESE IN SRS WINDOW.

1.Bill of Lading:CONTAINIG THE ORGANIZATION LICENSE INFORMATION.

2.Packing Slip Report:HOW THE MATERIAL ARE PACKED. LIFO/FILO.

3.Commercial Invoice: INVOICE WITH OUT TAX DETAILS ONLY PRODUCT COST WILL BE SPECIFIED.

4.Vehicle Load Sheet Details:HOW THE ITEMS ARE LOADED IN THE VEHICLE

5.Interface Trip Stop: INTERFACE DATA TRANSFER TO AR MODULE.


->GO TO SRS WINDOW->RUN "WORK FLOW BACKGROUND PROCESS"
PREDEFINED:YES
PROCESS TIMEOUT :YES
PROCESS STUCK:YES

THIS WORK FLOW BACKGROUND PROCESS WILL EXECUTE THE AUTO INVOICE PROGRAMM.


AFTER RUNNING THE WORKFLOW BACKGROUND PROCESS PGM. WE CAN FIND THE INVOICE NUMBER IN ->ORDERS,RETURNS
->ORDER ORGANIZER ->PASS ORDER NUMBER ->PRESS "FIND"(BUTTON) ->ACTIONS(BUTTON) ->ADDITONAL INFORMATION
->INVOICES / CREDIT MEMOS ->COPY VALUE IN "NUMBER"(INVOICE NUMBER) FIELD.



SELECT * FROM RA_INTERFACE_LINES_ALL

SELECT * FROM RA_CUSTOMER_TRX_ALL WHERE INTERFACE_HEADER_ATTRIBUTE1='66413'--CUSTOMER_TRX_ID IS PK.

(OR)

SELECT * FROM RA_CUSTOMER_TRX_ALL WHERE TRX_NUMBER='10037602' AND ORG_ID=204

->TRX_NUMBER IS INDIRECTLY INVOICE NUMBER.

-> WE CAN HAVE DUPLICATE INVOICE_NUMBERS FOR DIFFERENT ORGANIZATIONS.


->IN ABOVE TABLE "INTERFACE_HEADER_ATTRIBUTE1" IS NOTHING BUT "ORDER_NUMBER" IN OE_ORDER_HEADERS_ALL.

->IN ABOVE TABLE, COLUMN "TRX_NUMBER" IS NOTHING BUT INVOICE_NUMBER.


LINES TABLE:
=============

SELECT * FROM RA_CUSTOMER_TRX_LINES_ALL WHERE CUSTOMER_TRX_ID=757204

SELECT * FROM RA_CUST_TRX_LINE_GL_DIST_ALL WHERE CUSTOMER_TRX_ID=757204

SELECT * FROM RA_CUST_TRX_TYPES_ALL WHERE CUST_TRX_TYPE_ID=1361



THE DUE DATE AND PAYMENT TERMS WE CAN FIND IN "AR_PAYMENT_SCHEDULES_ALL" TABLE.
================================================================================


SELECT * FROM AR_PAYMENT_SCHEDULES_ALL  WHERE CUSTOMER_TRX_ID=757204--PAYMENT_SCHEDULE_ID IS PK.

(OR)

SELECT * FROM AR_PAYMENT_SCHEDULES_ALL WHERE TRX_NUMBER='10037602' AND ORG_ID=204



SELECT * FROM OE_TRANSACTION_TYPES_ALL WHERE TRANSACTION_TYPE_ID=1456





GO TO RECEIVABLES,VISION OPERATIONS(USA):
==========================================

TO QUERY INVOICE :
=================

GO TO TRANSACTIONS ->TRANSACTIONS ->F11 ->PASTE TRX_NUMBER IN "NUMBER" FIELD ->CTRL+F11
-> SELECT TOOLS IN HORIZONTAL TOOL BAR ->CREATE ACCOUNTING ->FINAL POST TO GL.


TO CREATE INVOICE MANUALLY:
============================.

NAVIGATIONS:
=============

GO TO TRANSACTIONS ->TRANSACTIONS ->ENTER THE DETAILS ->GIVE ORDER_NUMBER IN "REFERENCE" FILED ->ENTER LINES DATA

-> ENTER DISTRIBUTIONS DATA. ->CTRL+S -> GOT TO "TOOLS" MENU IN HORIZONTAL TOOL BAR.
->CREATE ACCOUNTING ->FINAL POST TO GL.

TO CREATE RECEIPT:
==================

GO TO RECEIVABLES VISION OPERATIONS(USA)


NAVIGATION:
===========

->RECEIPTS ->RECEIPTS ->ENTER THE DETAILS ->APPLY(BUTTON).


SELECT * FROM AR_CASH_RECEIPTS_ALL WHERE RECEIPT_NUMBER='REC3'--CASH_RECEIPT_ID IS PK.

CASH_RECEIPT_ID=110051

REMITTANCE:
==============

RECEIPTS ->REMITTANCES ->ENTER THE DETAILS ->PRESS "MANUAL CREATE" -> PRESS F11 THEN PLACE THE
CURSOR IN "NUMBER" FILED ->ENTER RECEIPT NUMBER ->CTRL+F11.
-> CHECK THE CHECK BOX AT LINES LEVEL(THAT MEANS LEFT SIDE OF THE RECEIPT NUMBER).
->PRESS "FORMAT"(BUTTON).->YES ->OK ->OK ->OK.THEN CLOSE THE REMITTANCE FORM.

->OPEN RECEIPTS FORM ->F11->PLACE THE CURSON IN "RECEIPT NUMBER" FIELD ->ENTER THE REEIPT NUMBER ->CTRL+F11.

->SEE THE "STATUS" FIELD.
->THEN CLOSE THE FORM.




GO TO CASH MANAGEMENT VISION OPERATIONS (USA):
==============================================

NAVIGATIONS:
=============

->BANK STATEMENTS ->MANUAL CLEARING ->CLEAR TRANSACTIONS ->ACCOUNT NAME: BOFA-204->FIND ->F11 ->PLACE THE CURSOR IN
"NUMBER" FIELD ->ENTER RECEIPT NUMBER ->CTRL+F11.

-> CHECK THE CHECK BOX AT LEFT SIDE OF THE NUMBER FILED. ->PRESS "CLEAR TRANSACTION"(BUTTON). ->CLOSE FORM.

->SWITCH TO RECEIVABLES VISION OPERATIONS USER (USA)

RECEIPTS ->RECEIPTS ->F11 -> ENTER RECEIPT NUMBER ->CTRL+F11.

->SEE THE "STATUS" FIELD.

->"TOOLS" MENU IN HORIZONTAL TOOL BAR ->CREATE ACCOUNTING ->CREATE FINAL ACCOUNTING.

->"TOOLS" MENU IN HORIZONTAL TOOL BAR ->VIEW ACCOUNTING.->CLOSE WINDOW.

->THEN GO TO SRS WINDOW.->SUBMIT A NEW REQUEST ->SINGLE REQUEST ->OK

->IN "NAME" FIELD. SELECT "TRANSFER JOURNAL ENTRIES TO GL"

PARAMETERS:
==========

LEDGER: VISION OPERATIONS (USA)
END DATE:31-OCT-2014
POST IN GENERAL LEDGER: NO

->OK.

->FIND.



GO TO GENERAL LEDGER VISION OPERATIONS(USA):
===============================================

JOURNALS ->ENTER -> COPY REQUEST NUMBER OF "JOURNAL IMPORT" FROM SRS WINDOW. ->BATCH: %6009780% ->FIND.


SEE THE BATCH_STATUS.

->REVIEW JOURNAL ->CLOSE FORM ->PRESS POST (IT WILL RUN CONCURRENT PGM) ->REQUERY. ->SEMILARLY FOR ALL LINES.


SELECT * FROM GL_INTERFACE

--JOURNAL IMPORT.

SELECT * FROM GL_JE_HEADERS

SELECT * FROM GL_JE_LINES

SELECT * FROM GL_JE_BATCHES


--POSTING

SELECT * FROM GL_BALANCES

BEFORE POSTING WE CAN CANCEL/REVERSE/MODIFY.

AFTER POSTING WE CAN NOT MAKE ANY CHANGES.


TABLES:
=========

SELECT * FROM RA_SALESREPS_ALL

REQUIREMENT:
============

SELECT
FROM
WHERE 1=1

P2P Step by Step Complete Cycle

P2P CYCLE:
==========

ITEM CREATION:
==============

GO TO INV VISION OPERATIONS USA.

NAVIGATION:
==========
   ITEMS->MASTER_ITEMS->IT WILL SHOW ORGANIZATION LIST ->SELECE V1.

SELECT * FROM ORG_ORGANIZATION_DEFINITIONS WHERE ORGANIZATION_CODE='V1'--ORGANIZATION_ID IS PK.

ITEMS TABLE:
------------

SELECT * FROM MTL_SYSTEM_ITEMS_B WHERE SEGMENT1='SIM_CUTTER'

THIS TABLE HAS COMPOSOITE PK ON (INVENTORY_ITEM_ID AND ORGANIZATION_ID).

ITEM NAME STORES IN SEGMENT1 COLUMN.

THIS ITEM WE CAN ALSO ATTACH TO DIFFERENT CATEGORIES.

TO KNOW CATEGORIES.

SELECT * FROM MTL_CATEGORIES--CATEGORY_ID IS PK.


SUPPLIER CREATION:
==================

GO TO PURCHASING,VISION OPERATIONS(USA)

NAVIGATION:
===========

 SUPPLY BASE->SUPPLIERS->CREATE SUPPLIER -> ENTER THE DETAILS ->APPLY. ->IT WILL GENERATE SUPPLIER_NUMBER AND REGISTRY_ID.

 COPY SUPPLIER_NUMBER AND PASTE IT IN SEGMENT1 COLUMN.

 SELECT * FROM AP_SUPPLIERS WHERE SEGMENT1='13' --VENDOR_ID IS PK.39169.


GO TO ADDRESS BOOK AT THE LEFT SIDE.

NAVIGATION:
===========

ADDRESS BOOK -> CREATE -> ENTER THE DETAILS ->check all 3 check boxes(purchasing,payment,rfq only)

->continue ->select check box under select site name -> APPLY.

->CREATE(TO CREATE ANOTHER SUPPLIER SITE.)

TO KNOW THE SITES FOR THIS SUPPLIER.

SELECT * FROM AP_SUPPLIER_SITES_ALL WHERE VENDOR_ID=39169 -- VENDOR_SITE_ID IS PK.


GO TO CONTACT DIRECTORY AT THE LEFT SIDE.

-> CONTACT DIRECTORY -> CREATE ->ENTER THE DETAILS.->APPLY.


SELECT * FROM AP_SUPPLIER_CONTACTS--VENDOR_CONTACT_ID IS PK.


TO DISPLAY CONTACT NAME

SELECT * FROM HZ_PARTIES WHERE PERSON_FIRST_NAME='KADURU'



BUYER CREATION:
===============

GO TO HRMS Management. RESPONSABILITY.

NAVIGATION:
===========

HRMS MANAGER ->PEOPLE -> ENTER AND MAINTAIN ->NEW(BUTTON) ->ENTER THE DETAILS ->
ACTION:CREATE EMPLOYEMENT ->Person Type For Action:EMPLOYEE ->CTRL+S. ->COPY EMPLOYEE NUMBER.

SELECT * FROM PER_ALL_PEOPLE_F WHERE PERSON_ID='31518'--PERSON_ID IS PK.

SELECT * FROM FND_USER WHERE USER_NAME='SITARAMA'--USER_ID IS PK.

TO ADD PERSON TO USER:
=======================

GO TO SYSTEM ADMINNISTRATOR RESP

SECURITY->USER->DEFINE->F11->USERNAME:SITARAMA ->CTRL+F11. ->CTRL+L ON PERSON FIELD. ->SELECT 'MUDALIAR%' ->CTRL+S.


TO MAKE USER AS A BUYER:
=========================

GO TO PURCHASIING,VISION OPERATIONS (USA).

NAVIGATION:

SETUP ->Personal ->BUYERS ->ADD BUYER(BUTTON) ->SELECT BUYERNAME AND SAVE THE DETAILS.


NOTE:
=====

BUYER IS NOTHING BUT AGENT.

SELECT * FROM PO_AGENTS WHERE AGENT_ID='31518' --AGENT_ID IS PK.

SELECT * FROM FND_USER WHERE EMPLOYEE_ID='31518'

SELECT * FROM PER_ALL_PEOPLE_F WHERE PERSON_ID='31518'.




For Items:
===========

select *from mtl_system_items_b  where segment1='Nokia Mobile' and organization_id=204

select *from mtl_onhand_quantities  where inventory_item_id=214955 and organization_id=204

select *from mtl_material_transactions where inventory_item_id=214955 and organization_id=204

select *from mtl_transaction_types  where TRANSACTION_TYPE_ID=42

select *from mtl_item_categories  where inventory_item_id=214955 and organization_id=204

select *from mtl_categories  where CATEGORY_ID=1

select*from mtl_category_sets where CATEGORY_SET_ID=2 --to know category set name.


Employee And Buyer(agent) Informaation:
========= ============ ==========

select *from per_all_people_f   where employee_number='2114'   ----Person_id is Primary key

select *from po_agents  where agent_id=31478

Suppier Informtion:
====== =============

select *from ap_suppliers  where segment1=12

select *from hz_parties where party_name='Nokia Supplier'

select *from ap_supplier_sites_all  where vendor_id=38169

select *from ap_supplier_contacts  --where vendor_site_id=6971

select *from hz_party_sites  where party_id=406680

select *from hz_party_relationships  --where PARTY_RELATIONSHIP_ID=406683

select *from hz_contact_points







07-OCT-2014:


PO:
====

REQUISITION:
============

1.INTERNAL REQUISITION.

2.PURCHASE REQUISITION.

INTERNAL REQUISITION CALLED AS INTERNAL SALES ORDER ITS CONNECTED TO THE ORDER MANAGEMENT.

GENERALLY WE CREATE INTERNAL REQUISITION WHEN EVER GOODS RECEIVING FROM ANOTHER INVENTORY IN THE SAME ORGANIZATION.

WE CREATE THE PURCHASE REQUISITION WHEN EVER THE GOODS ARE RECEIVING FROM THE SUPPLIER.

 TO CREATE THE REQUISITION GO TO THE PURCHASE,VISION OPERATIONS (USA):
 =====================================================================

 NAVIGATION:
 ===========

 REQUISITIONS ->REQUISITIONS ->SELECT TYPE:PURCHASE REQUISITION.AND OPERATING UNIT:VISION OPERATIONS
 AND ENTER THE DETAILS IN HEADER AND LINES LEVEL AND SELECT DISTRIBUTIONS BUTTON PLACE THE CURSOR IN CHARGE ACCOUNT
 AND SAVE THE DETAILS.

 AND CLOSE THE DISTRIBUTIONS TAB, COPY THE REQUISITION NUMBER.

 SELECT APPROVE BUTTON. SELECT NEED FOR APPROVAL AND APPROVE IT.



TO SEE THE STATUS OF THE REQUISITION:
======================================

SELECT THE REQUISITION SUMMARY ->PASTE THE REQUISITION NUMBER AND ITEM ->SELECT FIND(BUTTON).

NOW U CAN SEE THE APPROVAL_STATUS.

TO SEE THE HISTORY OF THE REQUISITION ->SELECT TOOLS MENU ->VIEW ACTION HISTORY.

TO CANCEL THE REQUISITION ->SELECT TOOLS MENU ->CONTROL ->SELECT CANCEL REQUISITION ->
REASON:WE DONT WANT ->SELECT OK(BUTTON).

AND RE_QUERY TO SEE THE CHANGED REQUISITION STATUS.

FROM BACK END WE CAN SEE THE REQUISITION STATUS IN THE PO_REQUISITION_HEADERS_ALL

SELECT * FROM PO_REQUISITION_HEADERS_ALL WHERE SEGMENT1='14316' --REQUISITION_HEADER_ID IS PK.

IN SEGMENT1 COLUMN  REQUISITION_NUMBER WILL STORE.


REQUISITION TABLES:
===================
HEADERS TABLE:
-------------
SELECT * FROM PO_REQUISITION_HEADERS_ALL WHERE SEGMENT1='14317'--REQUISITION_HEADER_ID IS PK.

REQUISITION_HEADER_ID=181311

LINES TABLE:
-------------

SELECT * FROM PO_REQUISITION_LINES_ALL WHERE REQUISITION_HEADER_ID='181311'--REQUISTION_LINE_ID IS PK.

REQUISTION_LINE_ID=208499.

DISTRIBUTIONS TABLE:
-------------------

SELECT * FROM PO_REQ_DISTRIBUTIONS_ALL WHERE REQUISITION_LINE_ID='208499'--DISTRIBUTION_ID IS PK.

DISTRIBUTION_ID=207018.

TO SEE THE PO_ACTION_HISTORY:
--------------------------------

SELECT * FROM PO_ACTION_HISTORY WHERE OBJECT_ID='181311'--OBJECT_ID IS NOTHING BUT REQUISITION_HEADER_ID.
AND OBJECT_TYPE_CODE='REQUISITION'
AND OBJECT_SUB_TYPE_CODE='PURCHASE'

IN THIS TABLE WE CAN SEE THE DETAILS OF REQUISITION  WHO IS SUBMITTED AND WHO IS APPROVED
BY USING THE CREATED_BY COLUMN.

AND WE CAN FIND OUT WHICH RECORD BELONGS TO SUBMIT AND  WHICH RECORD BELONGS TO APPROVE BY USING
THE "ACTION_CODE" COLUMN.


TO CHANGE REQUISITION NUMBER AUTOMATIC FROM MANUAL:
===================================================
BY DEFAULT REQUISITION NUMBER IS MANUAL.

GO TO PURCHASING RESP.

->SETUP -> ORGANIZATION -> PURCHASING OPTIONS -> OPERATING UNIT -> V1 VISION OPERATIONS.
REQUISITION NUMBER: MANUAL ALPHANUMERIC.


RFQ(REQUEST FOR QUOTATION): 3 TYPES.
===========================

1.BID RFQ 2.CATALOG RFQ 3.STANDARD RFQ.


1.BID:
======
WE WILL CREATE BID RFQ FOR FIXED ITEMS AND FIXED QUANTITY.

IN BID RFQ NO PRICE BREAKS(DISCOUNTS) ARE AVAILABLE.


SHIPMENTS WILL COME ONLY FOR BID RFQ.

2.CATALOG:
==========

WE WILL CREATE CATALOG RFQ FOR THE ITEMS WHICH WE WILL PURCHASE REGULARLY.

IT CONTAINS PRICE BREAKS(DISCOUNTS).

3.STANDARD:
===========

WE WILL CREATE STANDARD RFQ FOR THE ITEMS WHICH WE WILL PURCHASE ONLY ONCE THAT IS NOT VERY OFTEN.

IT CONTAINS PRICE BREAKS(DISCOUNTS).



---> GO TO PURCHASE,VISION OPERATIONS (USA) RESPONSIBILITY.



NAVIGATION:
------------

->RFQS AND QUOTATIONS -> RFQS ->ENTER THE DETAILS AT HEADER LEVEL.

IN RFQ HEADERS LEVEL THERE IS TWO FIELDS CALLED "DUE DATE" AND "CLOSE DATE",ALWAYS "CLOSE DATE" IS TO BE HIGHER THAN
THE "DUE DATE"

HERE "DUE DATE" MEANS WHEN BUYER GOING TO PAY THE AMOUNT AND "CLOSE DATE" IS WHEN WE CLOSE THE DEAL. THAT MEANS
BEFORE CLOSING THE DEAL WE SHOULD PAY THE WHOLE AMOUNT WITHOUT ANY DUE. SO "CLOSE DATE" ALWAYS
HIGHER THAN THE "DUE DATE".

->ENTER THE LINES LEVEL
->TERMS(BUTTON)->ENTER THE DETAILS
->CURRENCY(BUTTON)->ENTER THE CONVERSION RATE(IF THE SUPPLIER CURRENCY AND BUYER CURRENCY IS DIFFERENT.)
->PRICE BREAKS(BUTTON)->ENTER THE DETAILS.
AND U CAN ENTER THE EXPECTING DISCOUNT PERCENTAGE IN THE DISCOUNT FIELD.
AND U CAN TELL FIRST LINE QUANTITY WHEN U WANT, BY MENTIONING FROM_DATE AND TO_DATE

->CTRL+S.

->SUPPLIERS(BUTTON)->ENTER THE DETAILS AND SAVE THE DETAILS. HERE SUPPLIER DETAILS WILL SAVE IN "PO_RFQ_VENDORS" TABLE
WE CAN QUERY THE DATA BY PASSING PO_HEADER_ID IN WHERE CLAUSE.

EX: SELECT * FROM PO_RFQ_VENDORS WHERE PO_HEADER_ID=110708.

TO CONFIGURE SUPPLIER NAMES IN "ADD FROM LIST"(BUTTON):
========================================================

NAVIGATION:
---------------
->SUPPLIER BASE ->SUPPLIER LIST ->U CAN ADD NEW SUPPLIERS HERE.

COPY THE RFQ NUMBER.


HEADERS LEVEL TABLE:
--------------------

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='311'--IN THIS TABLE RFQ,QUOTATIONAND PO DETAILS WILL STORE.
AND TYPE_LOOKUP_CODE='RFQ'--SO WE ARE GIVING TYPE_LOOKUP_CODE.BUT STILL WE CAN GET DUPLICATE DATA.
AND ORG_ID='204'--SO WE ARE GIVING ORG_ID
--PO_HEADER_ID IS PK.110686.

LINES LEVEL TABEL:
-----------------

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID=110686--PO_LINE_ID IS PK.  173615.

PRICE BREAKS LEVEL:
--------------------

SELECT * FROM PO_LINE_LOCATIONS_ALL WHERE PO_LINE_ID='173615'--LINE_LOCATION_ID IS PK. 264801 AND 264802.

ONCE WE SEND THE RFQS TO SUPPLIERS THEN WE WILL RECEIVE THE QUOTATIONS FROM THE SUPPLIERS.






08-OCT-2014:
-------------

RFQ HEADERS LEVEL:
=================

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='314'
AND TYPE_LOOKUP_CODE='RFQ'
AND ORG_ID='204'

SELECT * FROM PO_AGENTS WHERE AGENT_ID=25

SELECT * FROM PER_ALL_PEOPLE_F WHERE PERSON_ID='25'

TO SEE THE SUPPLIERS DATA:
---------------------------

SELECT * FROM PO_RFQ_VENDORS WHERE PO_HEADER_ID=110708.

RFQ LINES LEVEL:
================

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID='110708'--PO_LINE_ID IS PK.173637--ORG_ID,ITEM_ID.

select * from mtl_categories where category_id=1

select * from mtl_units_of_measure where UNIT_OF_MEASURE='Each'

select * from po_line_types where line_type_id=1

SELECT * FROM MTL_SYSTEM_ITEMS_B WHERE INVENTORY_ITEM_ID=217955--INVENTORY_ITEM_ID and ORGANIZATION_ID.

SELECT * FROM ORG_ORGANIZATION_DEFINITIONS --ORGANIZATION_ID.


SHIPMENTS AND PRICE BREAKS:
============================

SELECT * FROM PO_LINE_LOCATIONS_ALL  WHERE PO_LINE_ID=173637--LINE_LOCATION_ID IS PK.


SELECT * FROM AP_TERMS WHERE TERM_ID=10002.





QUOTATIONS:
==========

3 TYPES.

BID,CATALOG,STANDARD THESE 3 ARE SAME AS LIKE RFQ.

NAVIGATION:
===========
GO TO PURCHASIING,VISION OPERATIONS(USA).

->RFQS AND QUOTATIONS ->QUOTATIONS ->ENTER THE DETAILS.

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='505'
AND TYPE_LOOKUP_CODE='QUOTATION'
AND ORG_ID=204

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID=110726

SELECT * FROM PO_LINE_LOCATIONS_ALL WHERE PO_LINE_ID=173655


SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='506'
AND TYPE_LOOKUP_CODE='QUOTATION'
AND ORG_ID=204

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID=110727

SELECT * FROM PO_LINE_LOCATIONS_ALL WHERE PO_LINE_ID=173656

WE CAN FINDOUT THE QUOTATION IS IT CREATED BASED ON RFQ OR NOT ?, BY USING THE COLUMN "FROM_TYPE_LOOKUP_CODE"
IN PO_HEADERS_ALL TABLE.

AND WE CAN FINDOUT BASED ON WHICH RFQ THIS QUOTATION IS CREATED. BY USING THE COLUMN "FROM_HEADER_ID".

TAKE "FROM_HEADER_ID" VALUE  AND QUERY FROM  PO_HEADERS_ALL

EX:
===

SELECT * FROM PO_HEADERS_ALL WHERE PO_HEADER_ID='110728'

SO QUOTATION 507 IS CREATED BASED ON THE RFQ 317.


SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='507'
AND TYPE_LOOKUP_CODE='QUOTATION'
AND ORG_ID=204

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID=110729

SELECT * FROM PO_LINE_LOCATIONS_ALL WHERE PO_LINE_ID=173658





PURCHASING ORDER:
===================




4 TYPES.

1.STANDARD PURCHASE ORDER.
2.PLANNED PURCHSE ORDER.
3.BLANKET PURCHSE AGREEMENT.
4.CONTRACT PURCHSE AGREEMENT.

AGREEMENT:
----------

IT MEANS WE WILL PURCHSE ITEMS OR SERVICES IN FUTURE ACCORDING TO THE AGREEMENT.

THE PURCHSE ORDER WE CAN ENTER IN 4 LEVELS THAT ARE

1.HEADERS  2.LINES 3.SHIPMENTS 4.DISTRIBUTIONS


TO CREATE PURCHSE ORDER

GO TO PURCHASING,VISION OPERATIONS (USA) RESPONSIBILITY.

WE CAN CREATE THE PO AUTOMATICALLY BASED ON THE REQUISITION BY USING AUTOCREATE OPTION.

NAVIGATION:
-----------              ->AUTOCREATE ->ENTER THE DETAILS.



HOW TO FIND PO CREATED BASED ON REQUISITION NUMBER?. FROM FRONT END.
-----------------------------------------------------

GO TO PO DISTRIBUTION ->MORE TAB ->NUMBER. THIS IS REQUISITION NUMBER.


HOW TO FIND PO CREATED BASED ON REQUISITION NUMBER?. FROM BACKEND.
-------------------------------------------------------------------

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6056'

IN "DOCUMENT_CREATION_METHOD" COLUMN IT WILL SHOW HOW THIS DOCUMENT CREATED.


NAVIGATION:
===========

->PURCHASE ORDERS ->PURCHASE ORDERS ->ENTER DETAILS. ->CTRL+S. ->COPY PONUMBER ->APPROVE.


HEADERS TABLE:
--------------

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6056'--PO_HEADER_ID IS PK.

LINES TABLE:
-------------

SELECT * FROM PO_LINES_ALL WHERE PO_HEADER_ID=110746--PO_LINE_ID IS PK.

SHIPMENT TABLE:
---------------

SELECT * FROM PO_LINE_LOCATIONS_ALL WHERE PO_LINE_ID=173675--LINE_LOCATION_ID IS PK.

DISTRIBUTIONS TABLE:
--------------------

SELECT * FROM PO_DISTRIBUTIONS_ALL WHERE LINE_LOCATION_ID=264861--PO_DUSTRIBUTION_ID IS PK.

PO RELEASES TABLE:
------------------

PURHASE ORDER RELEASES NEED ONLY FOR PLANNED PURCHASE ORDER AND BLANKET PURCHSE AGREEMENT,SO CREATE RELEASES ONLY FOR

PO NUMBERS WHICH ARE BELONGS TO PLANNED AND BLANKET PURCHASE ORDERS.


->PURCHASIE ORDERS ->RELEASES ->ENTER DETAILS ->DISTRIBUTIONS ->CTRL+S ->APPROVE. ->GO TO SRS
->FIND LATEST->LOG->m_documentId:131281. HERE M_DOCUMENT_ID ID NOTHING BUT THE PO_RELEASE_ID IN PO_RELEASES_ALL TABLE.


SELECT * FROM PO_RELEASES_ALL WHERE PO_RELEASE_ID=131281--PO_RELEASE_ID IS PK.


TO SEE THE TYPE NAME:
---------------------

select * from po_document_types_all where document_type_code='PO'
AND DOCUMENT_SUBTYPE='STANDARD'
AND ORG_ID=204


NUMBERS AND DATES ARE SAVED IN MAIN TABLE.

WE CAN FIND OUT SUPPLIER CONTACT NAME FROM AP_SUPPLIER_CONTACTS BASED ON VENDOR_CONTACT_ID IN PO_HEADERS_TABLE.

TO SEE LOCATION NAMES:
-----------------------

SELECT * FROM HR_LOCATIONS--LOCATION_ID IS PK.

CURRENCY MAIN TABLE:
=---------------------

SELECT *  FROM FND_CURRENCIES WHERE CURRENCY_CODE='USD'

TO SEE BUYER NAME:
==================
BUYER IS NOTHING BUT AGENT.

AGENT_ID IN HEADERS TABLE. BUT AGENT_ID MAIN TABLE IS PO_AGENTS.

SELECT * FROM PO_AGENTS--AGENT_ID IS PK.

AGENT_ID IN PO_AGENTS AND PERSON_ID IN PER_ALL_PEOPLE_F ARE SAME DATA.


TO SEE BUYERNAME:
------------------

SEE FULL_NAME COLUMN IN  BELOW TABLE.


SELECT * FROM PER_ALL_PEOPLE_F WHERE PERSON_ID='25'--PERSON_ID IS PK.



LINES LEVEL:
=============

LINE_TYPE_ID IS SAVING IN LINES TABLE.

TO SEE LINE_TYPE:
----------------

SEE LINE_TYPE COLUMN IN BELOW TABLE.

SELECT * FROM PO_LINE_TYPES WHERE LINE_TYPE_ID=1

TO SEE ITEM NAME:
--------------------

ITEM_ID IS SAVING IN LINES TABLE

SELECT * FROM MTL_SYSTEM_ITEMS_B,PO_LINES_ALL PLA WHERE INVENTORY_ITEM_ID=PLA.ITEM_ID AND ORGANIZATION_ID=204

REVISIONS MAIN TABLE:
======================

ITEM_REVISION IN LINES TABLE.

SELECT * FROM MTL_ITEM_REVISIONS WHERE INVENTORY_ITEM_ID=217955 AND ORGANIZATION_ID=204

CATEGORIES MAIN TABLE:
=======================

CATEGORY_ID IN LINES TABLE.


SELECT * FROM MTL_CATEGORIES WHERE CATEGORY_ID=1 --CATEGORY_ID IS PK.

UOMS PARENT TABLE:
====================

UNIT_MEAS_LOOKUP_CODE IN LINES TABLE.

SELECT * FROM MTL_UNITS_OF_MEASURE WHERE UNIT_OF_MEASURE='Each'--(PO_LINE_ALL.UNIT_MEAS_LOOKUP_CODE).--UOM CODE IS PK.


SHIPMENTS TABLE:
==================


TO SEE SHIP TO ORGANIZATION NAME.

SHIP_TO_ORGANIZATION_ID IN SHIPMENTS TABLE

SELECT ORGANIZATION_NAME FROM ORG_ORGANIZATION_DEFINITIONS WHERE ORGANIZATION_ID=204--PO_LINE_LOCATIONS_ALL.SHIP_TO_ORGANIZATION_ID

--ORGANIZATION_ID IS PK.

FAQ:
======

SHIPMENTS ->MORE TAB -> APPROVAL.

2-WAY:
--------

COMPARE 2 DOCUMENTS.

1.PO 2.INVOICE IS NOTHING BUT BILL FOR ORDER QUANTITY.

EX:
--

PO FOR 40 ITEMS AND INVOICE FOR 40 ITEMS.


3-WAY:
=======

COMPARE 3 DOCUMENTS.

1.PO  2.RECEIPT  3.INVOICE IS NOTHING BUT BILL FOR RECEIVED QUANTITY.

PO FOR 40 ITEMS ,RECEIVED 30 ITEMS, SO INVOICE FOR 30 ITEMS. THAT IS INVOICE FOR RECEIVED QUANTITY.

4-WAY:
=======

COMPARE 4 DOCUMENTS.

1.PO  2.RECEIPT 3.INSPECTION  4.INVOICE IS NOTHING BUT BILL FOR ACCEPTED QUANTITY.

PO FOR 40 ITEMS , RECEIVED 30 ITEMS , INSPECTION 25 ITEMS  AND INVOICE FOR 25 ITEMS. THAT IS

INVOICE FOR ACCEPTED QUANTITY. THE REMAINING 5 ITEMS FAILED IN INSPECTION WILL RETURN TO SUPPLIERS.






SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6056'--STANDARD.

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6057'--PLANNED.

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6058'--BLANKET.FOR BLANKET INSTEAD OF SHIPMENTS PRICE BREAKS ARE AVAILABLE.

SELECT * FROM PO_HEADERS_ALL WHERE SEGMENT1='6059'--CONTRACT THERE WON'T BE ANY  THING EXCEPT TERMS AND CONDITIONS.












RECEIPT:
==========

GO TO PURCHASING,VISION OERATIONS USA  RESP

NAVIGATION:
----------

RECEVING ->RECEIPTS ->V1 ->ENTER THE DETAILS. ->CTRL+S ->COPY RECIPT_NUMBER. ->CLOSE IT. ->IT WILL SHOW LINES
->CHECK IT AND SAVE IT.


WE CAN GET REQUEST_ID FROM SRS WINDOW AFTER CREATION OF THE RECEIPT.

SELECT * FROM RCV_TRANSACTIONS WHERE REQUEST_ID=6003764--TRANSACTION_ID IS PK.

WE CAN FIND THE SHIPMENT_HEADER_ID IN SRS WINDOW 6003765 LOG FILE ARGUMENTS.

WE CAN FIND THE SHIPMENT_HEADER_ID IN RCV_TRANSACTIONS TABLE.

SELECT * FROM RCV_SHIPMENT_HEADERS WHERE SHIPMENT_HEADER_ID=4817907

(OR)

WE CAN FIND THE SHIPMENT_HEADER_ID BY  USING THE RECEIPT_NUM AFTER SAVING THE RECEIPT.
















SELECT * FROM RCV_SHIPMENT_HEADERS WHERE RECEIPT_NUM='8466' AND ORGANIZATION_ID=204--SHIPMENT_HEADER_ID IS PK.

SELECT * FROM RCV_SHIPMENT_LINES WHERE SHIPMENT_HEADER_ID=4817907--SHIPMENT_LINE_ID IS PK.







AP (ACCOUNT PAYABLE):
======================


INVOICES:
=============


TO CREATE INVOICE

GO TO PAYABLES, VISION OPERATIONS (USA).

NAVIGATION:
============

INVOICES ->ENTRY ->INVOICES ->ENTER THE DETAILS. AND TAX CONTROL AMOUNT 0.00

THEN GO FOR LINES. ->ENTER THE DETAILS.

THEN GO FOR ALL DISTRIBUTIONS ->ENTER THE DETAILS. ->CTRL+S. ->ACTIONS..1 ->VALIDATE ->CREATE ACCOUNTING->FINAL POST.

COPY INVOICE NUMBER.



HEADERS TABLE:
==============

SELECT * FROM AP_INVOICES_ALL  WHERE INVOICE_NUM='inv1' AND VENDOR_ID=37170 --INVOICE_ID IS PK.

NOTE:
=====   WHEN WE HAVE DUPLICATE INVOICE NUMBERS BUT SUPPLIER WILL BE DIFFERENT.

LINES TABLE:
=============

SELECT * FROM AP_INVOICE_LINES_ALL WHERE INVOICE_ID=211420

DISTRIBUTIONS TABLE:
====================

SELECT * FROM AP_INVOICE_DISTRIBUTIONS_ALL WHERE INVOICE_ID=211420  COPY ACCOUNTING_EVENT_ID.3330713


ACCOUNTS:
=========

SELECT * FROM XLA_EVENTS  WHERE EVENT_ID=3330713-- EVENT_ID IS PK.

HERE "ACCOUNTING_EVENT_ID" IN AP_INVOICE_DISTRIBUTIONS_ALL AND "EVENT_ID" IN XLA_EVENTS ARE SAME.

SELECT * FROM XLA_EVENTS WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM XLA_EVENTS GROUP BY EVENT_ID)


SELECT * FROM XLA_AE_HEADERS  WHERE EVENT_ID=3330713--AE_HEADER_ID IS PK.

AE_HEADER_ID=4950976

SELECT * FROM XLA_AE_LINES WHERE AE_HEADER_ID=4950976   --GL_SL_LINK_ID 6857054,6857053

SEE THE GL_SL_LINK_ID COLUMN IN ABOVE TABLE.




GL TABLES:
===========



GL_INTERFACE BACK END:
----------------------

FROM BACK END WE CAN QUERY BY USING GL_SL_LINK_ID.

THE GL_SL_LINK_ID IN XLA_AE_LINES AND GL_INTERFACE TABLES ARE SAME. SO WE CAN QUERY THE DATA FROM BACKEND
BY USING "GL_SL_LINK_ID" COLUMN.

SELECT * FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857053

SELECT * FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857054



(OR)



GL_INTERFACE FRONT END:
-----------------------

WE CAN QUERY THE DATA FROM GL_INTERFACE BY USING REQUEST_ID OR GROUP_ID
WHICH IS PRESENT IN OUTPUT FILE OF Journal Import IN SRS WINDOW.


SELECT * FROM GL_INTERFACE WHERE REQUEST_ID=6003803

OR

SELECT * FROM GL_INTERFACE WHERE GROUP_ID=1549007


WE CAN QUERY THE DATA IN GL_JE_HEADERS BY USING "JE_HEADER_ID" OR "JE_BATCH_ID" PRESENT IN THE "GL_INTERFACE" TABLE.

SELECT * FROM GL_JE_HEADERS WHERE JE_HEADER_ID=4685155--JE_HEADER_ID IS PK.

SELECT * FROM GL_JE_LINES WHERE JE_HEADER_ID=4685155


GL_JE_BATCHES BACK END:
------------------------
FROM BACKEND WE CAN QUERY THE DATA FROM GL_JE_BATCHES BY USING THE JE_BATCH_ID PRESENT IN THE "GL_INTERFACE"

TABLE OR "GL_JE_HEADERS" TABLE.

SELECT * FROM GL_JE_BATCHES WHERE JE_BATCH_ID=2931184.


GL_JE_BATCHES FRONT END:
-----------------------


WE CAN QUERY THE GL_JE_BATCHES FROM FRONT END BY USING THE REQUEST_ID OF Posting: Single Ledger.

SELECT * FROM GL_JE_BATCHES WHERE REQUEST_ID=6003805



GL_BALANCES:
==============
IT SHOWS THE TOTAL BALANCES.

THESE  CODE_COMBINATION_ID VALUES OF THESE TWO(12854,13402) ARE PRESENT IN "CODE_COMBINATION_ID" COLUMN OF
GL_INTERFACE OR GL_JE_LINES TABLES.

SELECT * FROM GL_BALANCES WHERE CODE_COMBINATION_ID=12854

SELECT * FROM GL_BALANCES WHERE CODE_COMBINATION_ID=13402



AP_PAYMENT_SCHEDULES_ALL:
=========================

AP_PAYMENT_SCHEDULES_ALL TABLE WE WILL USE TO KNOW THE "INVOICE DUE DATE" AND "AMOUNT_REMAINING".


WE QUERY THE DATA FROM "AP_PAYMENT_SCHEDULES_ALL" BY USING "INVOICE_ID".


SELECT * FROM AP_PAYMENT_SCHEDULES_ALL WHERE INVOICE_ID=211420


DISTRIBUTION SET:
===================

TO CREATE DISTRIBUTION SET  GO TO PAYABLES, VISION OPERATIONS(USA) RESP.

NAVIGATION:
==========

SETUP ->INVOICES ->DISTRIBUTION SET ->ENTER THE DETAILS. ->CTRL+S.

AND WE CAN USE IT IN INVOICES.


SELECT * FROM AP_DISTRIBUTION_SETS_ALL WHERE DISTRIBUTION_SET_NAME='SR_DISTRIBUTION_SET'


SELECT * FROM AP_DISTRIBUTION_SET_LINES_ALL WHERE DISTRIBUTION_SET_ID=11249


AP_HOLDS_ALL:
==============

AP_HOLDS_ALL TABLE WE WILL USE TO KNOW THE HOLD INVOICES.

WE CAN QUERY THE DATA FROM AP_HOLDS_ALL  BY USING INVOICE_ID.

SELECT * FROM AP_HOLDS_ALL WHERE INVOICE_ID=211420--COPY  RELEASE_LOOKUP_CODE.

SELECT * FROM AP_HOLDS_RELEASE_NAME_V WHERE RELEASE_LOOKUP_CODE='APPROVED'






REQUIREMENT:
==============

INVOICENUM,TYPE,CDATE,SUPPLIER NAME,SITE CODE,AMOUNT,DUE DATE

SELECT APIA.INVOICE_ID,
       APIA.INVOICE_NUM,
       APIA.INVOICE_TYPE_LOOKUP_CODE TYPE,
       APIA.CREATION_DATE CDATE,
       APS.VENDOR_NAME,
       APSSA.VENDOR_SITE_CODE "SITE CODE",
       APIA.INVOICE_AMOUNT AMOUNT,
       APSA.DUE_DATE,
       APSA.AMOUNT_REMAINING "DUE AMOUNT"
FROM AP_INVOICES_ALL APIA,
AP_SUPPLIERS APS,
AP_SUPPLIER_SITES_ALL APSSA,
AP_PAYMENT_SCHEDULES_ALL APSA
WHERE APIA.INVOICE_NUM='inv1'
AND APIA.VENDOR_ID=APS.VENDOR_ID
AND APIA.VENDOR_SITE_ID=APSSA.VENDOR_SITE_ID
AND APIA.INVOICE_ID=APSA.INVOICE_ID









PAYMENTS:
==========


3 TYPES:
==========

1.MANUAL 2.QUICK 3.REFUND.

1.MANUAL:
=========

MANUALLY PAY THE CASH/CHEQUE AND ENTER THE DETAILS IN THE SYSTEM.

2.QUICK:
=======

GENERATE THE CHECK PRINTING AUTOMATICALLY THROUGH THE SYSTEM.

3.REFUND:
==========

IF ANY REFUNDABLE AMOUNT ARE THERE THEN WE WILL PAY THE AMOUNT.


DEVELOP INVOICE AND COPY THE INVOICE NUMBER

PAYMENTS:
=========

BANK ACCOUNT:BOFA_204.
PAYMENT:CHECK
PAYMENT PROCESS PROFILE:CHECK_POSITIVE PAY A.

ENTER/ADJUST INVOICE:
=======================

INVOICE NUMBER: CTRL+V. ->CTRL+S AND CLOSE.


ACTIONS1 -> CREATE ACCOUNTING->FINAL POST.


WE CAN ALSO PAY THE AMOUNT DIRECTLY FROM INVOICE.

IN INVOICE ->AFTER CREATE ACCOUNTING FINAL POST.

ACTION1 -> CHECK PAY IN FULL



TABLES:
=======

SELECT * FROM IBY_PAYMENTS_ALL

SELECT * FROM IBY_EXTERNAL_PAYEES_ALL ->STORES PAYEE(SUPPLIER) INFORMATION.

SELECT * FROM IBY_PAY_SERVICE_REQUESTS ->PAYMENT PROCESS REQUESTS(PPR) INFORMATION.

CE_BANK_ACCOUNTS/AP_BANK_ACCOUNTS_ALL.

CE_BANK_ACCT_USES_ALL/AP_BANK_ACCOUNT_USES_ALL
CE_PAYMENT_DOCUMENTS/AP_CHECK_STOCKS_ALL.

XLA_DISTRIBUTION_LINKS


TAX TABLES:
============

ZX_LINES->DETAIL TAX LINES FOR THE INVOICE.

ZX_LINES_SUMMARY ->SUMMARY TAX LINES FOR THE INVOICE.

ZX_REC_NREC_DIST -> TAX DISTRIBUTION FOR THE INVOICE.

ZX_LINES_DET_FACTORS ->TAX DETERMINATION FACTORS  FOR THE INVOICE.





IF IN INVOICE IS CREATED  BASED ON THE CREATE ACCOUNTING WITH FINAL.

THAT MEANS


ACTIONS..1 ->VALIDATE ->CREATE ACCOUNTING->FINAL


NAVIGATION:
============

INVOICES ->ENTRY ->INVOICES ->ENTER THE DETAILS. AND TAX CONTROL AMOUNT 0.00

THEN GO FOR LINES. ->ENTER THE DETAILS.

THEN GO FOR ALL DISTRIBUTIONS ->ENTER THE DETAILS. ->CTRL+S. ->ACTIONS..1 ->VALIDATE ->CREATE ACCOUNTING->FINAL.

COPY INVOICE NUMBER.



HEADERS TABLE:
==============

SELECT * FROM AP_INVOICES_ALL  WHERE INVOICE_NUM='INV3' AND VENDOR_ID=37170 --INVOICE_ID IS PK.

NOTE:
=====   WHEN WE HAVE DUPLICATE INVOICE NUMBERS BUT SUPPLIER WILL BE DIFFERENT.

LINES TABLE:
=============

SELECT * FROM AP_INVOICE_LINES_ALL WHERE INVOICE_ID=211422

DISTRIBUTIONS TABLE:
====================

SELECT * FROM AP_INVOICE_DISTRIBUTIONS_ALL WHERE INVOICE_ID=211422  --COPY ACCOUNTING_EVENT_ID.


ACCOUNTS:
=========

SELECT * FROM XLA_EVENTS  WHERE EVENT_ID=3330714--EVENT_ID IS PK.

HERE "ACCOUNTING_EVENT_ID" IN AP_INVOICE_DISTRIBUTIONS_ALL AND "EVENT_ID" IN XLA_EVENTS ARE SAME.

SELECT * FROM XLA_EVENTS WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM XLA_EVENTS GROUP BY EVENT_ID)


SELECT * FROM XLA_AE_HEADERS  WHERE EVENT_ID=3330714--AE_HEADER_ID IS PK.

AE_HEADER_ID=4950977

SELECT * FROM XLA_AE_LINES WHERE AE_HEADER_ID=4950977   --GL_SL_LINK_ID 66857056,6857055

SEE THE GL_SL_LINK_ID COLUMN IN ABOVE TABLE.

SELECT*FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857056

SELECT*FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857055



WE CAN NOT QUERY THE DATA FROM GL_INTERFACE

BY USING THE GL_SL_LINK_ID BECAUSE WHEN WE DO ONLY FINAL THE DATA DID NOT COME INTO GL_INTERFACE TABLE.

FOR THAT WE HAVE TO DO PAYMENT WITH CREATE ACCOUNTING WITH FINAL POST.


SELECT * FROM AP_INVOICES_ALL WHERE INVOICE_NUM='INV3' AND VENDOR_ID=37170

SELECT * FROM AP_INVOICE_LINES_ALL  WHERE INVOICE_ID=211422

SELECT * FROM AP_INVOICE_DISTRIBUTIONS_ALL WHERE INVOICE_ID=211422

PAYMENTs TABLE:
==============

SELECT * FROM AP_INVOICE_PAYMENTS_ALL WHERE INVOICE_ID=211422--INVOICE_PAYMENT_ID IS PK.

COPY ACCOUNTING_EVENT_ID 3330715.

select * from ap_invoice_payments_all where invoice_id=211422--copy check_id=77610

select * from ap_payment_schedules_all where invoice_id=211422

select * from ap_checks_all where check_id=77610 --check_id id pk.

select * from ap_checks_all where rowid not in (select min(rowid) from ap_checks_all group by check_id)



ACCOUNTING TABLES:
===================

SELECT * FROM XLA_EVENTS WHERE EVENT_ID=3330715

SELECT * FROM XLA_AE_HEADERS WHERE EVENT_ID=3330715 --AE_HEADER_ID IS PK.

SELECT * FROM XLA_AE_LINES WHERE AE_HEADER_ID=4950978 --GL_SL_LINK_ID 6857058,6857057

GL_SL_LINK_ID IN ABOVE TABLE.


GL TABLES:
==========


FROM BACKEND:
-------------
SELECT * FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857057

OR

SELECT * FROM GL_INTERFACE WHERE GL_SL_LINK_ID=6857058


FROM FRONT END:
----------------


SELECT * FROM GL_INTERFACE WHERE REQUEST_ID=6003836

OR

SELECT * FROM GL_INTERFACE WHERE GROUP_ID=1549008

GL HEADERS TABLE:
=================

SELECT * FROM GL_JE_HEADERS WHERE JE_HEADER_ID=4685158--JE_HEADER_ID IS PK.

GL LINES TABLE:
===============

SELECT * FROM GL_JE_LINES WHERE JE_HEADER_ID=4685158


GL_JE_BATCHES TABLE:
=====================

BACK END:
=========

SELECT * FROM GL_JE_BATCHES WHERE JE_BATCH_ID=2931187--JE_BATCH_ID IS PK.

FRONT END:
==========


REQUEST ID IS GOT FROM Posting: Single Ledger IN SRS WINDOW.


SELECT * FROM GL_JE_BATCHES WHERE REQUEST_ID=6003837

GL_BALANCE:
============

IT SHOWS THE TOTAL BALANCES.

SELECT * FROM GL_BALANCES WHERE CODE_COMBINATION_ID=12831

SELECT * FROM GL_BALANCES WHERE CODE_COMBINATION_ID=12854


AP_PAYMENT_SCHEDULES_ALL:
=========================

AP_PAYMENT_SCHEDULES_ALL TABLE WE WILL USE TO KNOW THE "INVOICE DUE DATE" AND "AMOUNT_REMAINING".


WE QUERY THE DATA FROM "AP_PAYMENT_SCHEDULES_ALL" BY USING "INVOICE_ID".


SELECT * FROM AP_PAYMENT_SCHEDULES_ALL WHERE INVOICE_ID=211422


DISTRIBUTION SET:
===================

TO CREATE DISTRIBUTION SET  GO TO PAYABLES, VISION OPERATIONS(USA) RESP.

NAVIGATION:
==========

SETUP ->INVOICES ->DISTRIBUTION SET ->ENTER THE DETAILS. ->CTRL+S.

AND WE CAN USE IT IN INVOICES.


SELECT * FROM AP_DISTRIBUTION_SETS_ALL WHERE DISTRIBUTION_SET_NAME='SR_DISTRIBUTION_SET'


SELECT * FROM AP_DISTRIBUTION_SET_LINES_ALL WHERE DISTRIBUTION_SET_ID=11249


AP_HOLDS_ALL:
==============

AP_HOLDS_ALL TABLE WE WILL USE TO KNOW THE HOLD INVOICES.

WE CAN QUERY THE DATA FROM AP_HOLDS_ALL  BY USING INVOICE_ID.

SELECT * FROM AP_HOLDS_ALL WHERE INVOICE_ID=211422--COPY  RELEASE_LOOKUP_CODE.

SELECT * FROM AP_HOLDS_RELEASE_NAME_V WHERE RELEASE_LOOKUP_CODE='APPROVED'

how to display the emp details by using function

create or replace type emp_type as object(empno number(10)
,sal number(10)
,deptno number(10)
,comm number(10)
,mgr number(10)
,hiredate date
,ename varchar2(100)
,job varchar2(100));

create or replace function emp_fun(empno number
,sal number
,deptno number
,comm number
,mgr number
,hiredate date
,ename varchar2
,job varchar2)
return emp_type as
o_emp_type emp_type;
begin
o_emp_type:=emp_type(empno,sal,deptno,comm,mgr,hiredate,ename,job);
return o_emp_type;
end;

select emp_fun(empno,sal,deptno,comm,mgr,hiredate,ename,job) from emp where empno=&p_empno;

Wednesday, 8 July 2015

How to insert data into multiple tables through SQL Query

insert all into e2 (empno,ename) values (9097,'xxxxx')
               into e3 (deptno,dname) values (50,'developer')
               select 1 from dual;

Flexfields (AOL) Concept for freshers & professionals

FLEX FIELD:
============
IT IS NOTHING BUT A FIELD ,A FIELD MADE UP WITH SEGMENT/ATTRIBUTE COLUMNS.

2 TYPES:
=========

1) DFF-DESCRIPTIVE FLEX FIELD.

2) KFF-KEY FLEX FIELD.

1)DFF:
======

IT IS USED TO CAPTURE "EXTRA INFORMATION " FROM END USER WITHOUT CHANGING THE FORM CODE AND TABLE STRUCTURE.

->WHENEVER THE FLEXFIELD IN FORM IT WILL BE LIKE "[]"

->WE HAVE 15 ATTRIBUTE COLUMNS IN EVERY APPS TABLE

->UP TO 15 EXTRA COLUMNS WE CAN ADD THE FLEXFIELD.

->IF WE DID NOT  PROVIDE INFORMATION IT WILL TAKE NULL VALUES.

GO TO APPLICATION DEVELOPER RESP

->FLEXFIELD ->DESCRIPTIVE ->REGISTER -FOR NEW DFF
                          ->SEGMENT -TO MODIFY DFF.
                       
                       
                       
                       
->WHENEVER WE HAVE DFF IN FRONT END, BACK END WILL BE ATTRIBUTE COLUMNS.

PO_REQUISITION_HEADERS_ALL ->15 ATTRIBUTE COLUMNS WE HAVE IN HEADER LEVEL.

PO_REQUISITION_LINES_ALL ->15 ATTRIBUTE COLUMNS WE HAVE IN LINES LEVEL.

PO_REQ_DISTRIBUTIONS_ALL ->15 ATTRIBUTE COLUMNS WE HAVE IN DISTRIBUTIONS LEVEL.


GO TO PURCHASING VISION OPERATIONS (USA) RESP

NAVIGATION:
===========

REQUISITIONS ->REQUISITIONS ->PLACE CURSOR ON DFF FIELD IN HEADERS LEVEL
->HELP ->DIAGNOSTICS ->EXAMINE ->APPS
 ->BLOCK: $DESCRIPTIVE_FLEXFIELD$
 ->FIELD: PO_REQ_HDR.DESCRIPTIVE_FLEX
->VALUE: Requisition Headers (Purchasing).


COPY VALUE: Requisition Headers

TO SEE THE DFF DETAILS :
========================

GO TO APPLICATION DEVELOPER RESP

->FLEXFIELD ->DESCRIPTIVE ->REGISTER ->F11 ->TITLE: PASTE VALUE ->CTRL+F11.


TO MODIFY THE DFF:
===================

GO TO APPLICATION DEVELOPER RESP

->FLEXFIELD ->DESCRIPTIVE ->SEGMENTS ->F11 ->TITLE: PASTE VALUE ->CTRL+F11 ->UNCHECK "FREEZE FLEXFIELD DEFINITION"

->SEGMENTS ->ENTER THE DETAILS ->OPEN(BUTTON) ->UNCHECK "REQUIRED" CHECK BOX ->SAVE

->CHECK "FREEZE FLEXFIELD DEFINITION" ->OK ->COMPILE(BUTTON) ->OK ->OK

GO TO PURCHASING VISION OPERATIONS(USA)

->REQUISITIONS ->REQUISITIONS ->PLACE CURSOR ON DFF FIELD IN HEADERS LEVEL AND CHECK WHAT YOU DID.



GLOBAL DATA ELEMENTS:
=====================

IF WE WOULD LIKE TO DISPLAY THE FIELD GLOBALLY (WHICH WILL BE DISPLAYED ALWAYS IRRESPECTIVE OF CONTEXT FIELD VALUES).



CONTEXT FIELD:
==============

CONTEXT FIELD WILL BE USED TO DEFINE THE MULTIPLE STRUCTURES IN THE DFF.

WHEN USER PLACE THE CURSOR IN THE DFF IT WILL OPEN THE DFF WITH CONTEXT FIELD.
IT CONTAINS THE CONTEXT FIELD VALUES SELECT THE VALUES . BASED ON THIS VALUES DFF STRUCTURE WILL BE POPULATED.

CONTEXT FIELD VALUE WILL BE STORED IN THE COLUMN CALLED 'ATTRIBUTE_CATEGORY'

1)OPEN THE SEGMENT FORM QUERY RECORDS BASED ON THE DFF TITLE.

2)UNCHECK THE CHECK BOX CALLED 'Freeze Flexfield Definition'

3)ENTER THE CONTEXT FIELD PROMPT , SELECT DISPLAY,REQUIRED CHECK BOX, IF REQUIRED

4)GO TO CONTEXT FIELD VALUES ENTER THE VALUE =>SEGMENTS BUTTON =>ENTER THE FIELDS

5)SAVE, COMPILE





-> GO TO PURCHASING VISION OPERATIONS (USA)

REQUISITIONS ->REQUISITIONS ->PLACE CURSOR ON DFF FIELD IN HEADERS LEVEL
->HELP ->DIAGNOSTICS ->EXAMINE ->APPS ->BLOCK: $DESCRIPTIVE_FLEXFIELD$ ->FIELD: PO_REQ_HDR.DESCRIPTIVE_FLEX
->VALUE: Requisition Headers (Purchasing).


COPY VALUE: Requisition Headers


GO TO APPLICATION DEVELOPER RESP:
==================================

->FLEXFIELD ->DESCRIPTIVE ->SEGMENTS ->F11 ->TITLE: PASTE VALUE ->CTRL+F11 ->UNCHECK "FREEZE FLEXFIELD DEFINITION"
->PLACE THE CURSOR UNDER "CODE"->PRESS CREATE BUTTON.
->CODE:MARRIED->NAME:MARRIED->DESCRIPTION:FOR EMPLOYEES WHO MARRIED.
->AGAIN PRESS CREATE BUTTON.
->CODE:SINGLE->NAME:SINGLE->DESCRIPTION:FOR EMPLOYEES WHO ALL ARE SOLO.

THEN PLACE THE CURSOR ON MARRIED FIELD.->PRESS SEGMENTS(BUTTON)
->1 "SPOUSE NAME" "SPOUSE NAME" "ATTRIBUTE 3" "15 Characters"
->2 "NUMBER OF CHILDREN" "NUMBER OF CHILDREN" "ATTRIBUTE 4" "10/Number"
->PRESS OPEN(BUTTON) ->UNCHECK "REQUIRED" CHECK BOX.

->CTRL+S.

THEN PLACE THE CURSOR ON SINGLE FIELD.->PRESS SEGMENTS(BUTTON)
->1 "Father Name" "Father Name" "ATTRIBUTE 1" "50 Characters"
->2 "Mother Name" "Mother Name" "ATTRIBUTE 2" "50 Characters"
->PRESS OPEN(BUTTON) ->UNCHECK "REQUIRED" CHECK BOX.

->CTRL+S

->CHECK "FREEZE FLEX FIELD DEFINITION" CHECK BOX.
->COMPILE
->CTRL+S.


-> GO TO PURCHASING VISION OPERATIONS (USA).

CREATE A REQUISITION BY GIVING THE DFF DETAILS AND APPROVE IT.


THEN CHECK THE TABLE "HOW" AND "WHERE" THE DETAILS OF DFF IS STORING IN DATABASE.


SELECT * FROM PO_REQUISITION_HEADERS_ALL WHERE SEGMENT 1='14322'

SELECT * FROM PO_REQUISITION_HEADERS_ALL WHERE SEGMENT 1='14323'





KEY FLEXFIELD :
===============

KFF WILL BE USED TO CAPTURE THE KEY(IMPORTANT) INFORMATION FROM "END USER" IN CODE LANGUAGE.
FOR EVERY CODE THERE WILL BE SPECIFIC MEANING IN THE APPLICATION.



FOR EX: WE CAN FIND SOME OF THE FIELDS LIKE FOLLOWS

CODE COMBINATION  01-001-1540-1234-0000

  01-OPERATIONS
 001-HRMS
1540-FURNITURE
1234-SALES ACCOUNT
0000-NO PRODUCT

 DESCRIPTION     : OPERATIONS-HRMS-FURNITURE-SALES ACCOUNT-NO PRODUCT

LIKE THIS WE CAN FIND THE MEANING IN THE APPLICATION FOR EVERY CODE.

WE WILL USE THE SEGMENT COLUMNS TO CAPTURE THE KFF DATA.

WE CAN FIND THE SEGMENT COLUMNS IN MOST OF THE TABLES LIKE  SEGMENT 1 , SEGMENT 2, SEGMENT 3 ,......... .SEGMENT30.



ADVANTAGES OF KFF DATA:
========================

1.INFORMATION WII BE SECURED.
2.WE CAN DEFINE CROSS VALIDATION RULES SO THAT USER CAN NOT ENTER INVALID COMBINATIONS.
3.IT WILL IMPROVE THE PERFORMANCE BY GENERATING CCID(CODE COMBINATION ID).
4.WE CAN GENERATE THE REPORT AT ANY SEGMENT LEVEL.






Diff Between DFF and KFF:
====================

            DFF                                                                       KFF
--------------------------------------------------                 -----------------------------------------------------------
1)DFF Will be used to capture the Extra                   1)KFF will be used to Capture the Key           Information.                                                                   Information

2)ATTRIBUTE Columns will be used                      2)SEGMENT columns will be used

3)We can have max DFF in the Application             3)We have 30 KFF already defined by Oracle
  there is no Limit                                                     we can customize existing KFF. We are not
                                                                             suppose to define the new KFF. We will not
                                                                             get support from Oracle.

4)In DFF we will use Context Field to
 define Multiple Structures.                                       4)In KFF we will define Structure Column                                                                                                      to define the Multiple Structures.



NOTE:
=====

DFF MEANS ATTRIBUTE COLUMNS.
KFF MEANS SEGMENT   COLUMNS.

WE HAVE TO REMEMBER SOME KEY FLEXFIELD NAMES AND WHICH MODULE AND WHAT IS THE TABLE.

how to get a customer name based on order number

select ra.CUSTOMER_NAME,
          ra.CUSTOMER_ID,
          rcta.CT_REFERENCE,
          ooha.order_number
from ra_customer_trx_all rcta,
         ra_customers ra,
         oe_order_headers_all ooha
where rcta.CT_REFERENCE=to_char(ooha.ORDER_NUMBER)
          and ra.CUSTOMER_ID=rcta.SHIP_TO_CUSTOMER_ID
          and order_number='66415'

(or)

select hp.PARTY_NAME,
          hp.PARTY_ID,
          rcta.CT_REFERENCE,
          ooha.order_number
from ra_customer_trx_all rcta,
         hz_parties hp,
         oe_order_headers_all ooha
where rcta.CT_REFERENCE=to_char(ooha.ORDER_NUMBER)
          andhp.PARTY_ID=rcta.SHIP_TO_CUSTOMER_ID
          and order_number='66415'

Query to find request set and its responsibility

  SELECT FA.application_name,        fr.responsibility_name program_attached_to,        frg.request_group_name,        fcp.request_set_name,...