Tuesday, April 22, 2008

To Capture the Information in DFF in purchasing

TO POPULATE THE VALUES IN DESCRIPTIVE FLEX FIELDS:
=====================================================

1)COPY THE CUSTOM.PLL AND KEEP IT IN THE LOCAL DIRECTORY
2)OPEN THE FORM BUILDER
3)OPEN THE APPLICATIONS AND CREATE THE DFF THROUGH APPLICATION DEVELOPER RESPONSIBILITY
4)NOTE THE FORM NAME AND BLOCK NAME
5)WRITE THE FOLLOWING CODE BY GIVING APPROPRIATE FORM NAME AND BLOCK NAME.
6)WRITE A CUSTOM PACKAGE AND WRITE A PROCEDURE INTO IT.
7)RETRIVE THE VALUES FROM THE TABLES THROUGH A SELECT STATEMENT AND STORE IT IN VARIABLES
8)USE "COPY" FUNCTION AND THEN POPULATE INTO THE REQUIRED FIELDS.


CODE WHICH IS TO BE WRITTEN IN CUSTOM.PLL:
============================================

form_name varchar2(30) := name_in('system.current_form');
block_name varchar2(30) := name_in('system.cursor_block');
param_to_pass1 varchar2(255);
-- param_to_pass2 varchar2(255);
begin
-- Zoom event opens a new session of a form and
-- passes parameter values to the new session. The parameters
-- already exist in the form being opened.

if (form_name = 'RCVRCERC' and block_name = 'RCV_TRANSACTION') then
if (event_name = 'WHEN-NEW-BLOCK-INSTANCE') then
param_to_pass1 := name_in('HEADER.RECEIVER');
PO_FLEX.P1(param_to_pass1);
END IF;
END IF;
end event;


CODE WHICH IS TO BE WRITTEN IN CUSTOM PACKAGE:
==============================================

PACKAGE BODY PO_FLEX IS
PROCEDURE P1 (param_to_pass1 IN VARCHAR2) IS
B NUMBER(10);
C varchar2(30) ;
D NUMBER(10);
E VARCHAR2(30);
BEGIN
C := name_in('HEADER.RECEIVER');
MESSAGE('ABC');
MESSAGE(' ');
SELECT PAPF.PERSON_ID,PAPF.EMPLOYEE_NUMBER,PAPF.FULL_NAME INTO B,D,E
FROM PER_ALL_PEOPLE_F PAPF
WHERE PAPF.FULL_NAME = C;
COPY(B,'RCV_TRANSACTION.ATTRIBUTE4');
COPY(D,'RCV_TRANSACTION.ATTRIBUTE4');
COPY(E,'RCV_TRANSACTION.ATTRIBUTE4');
END P1;
END PO_FLEX;

No comments: