Keyflexfield KFF Form Personalization
Prerequisites:
Knowledge of forms Personaliation
PLSQL
Oracle Forms Builder
Steps:
A - Form personalizion :-
Seq 30
PR distribution ac non editable and non updatable
WHEN-NEW-ITEM-INSTANCE
DISTRIBUTIONS.CHARGE_ACCOUNT_FLEX
:DISTRIBUTIONS.CHARGE_ACCOUNT_FLEX is not null
Built In
Call Custom Library
XXREADONLY_POCHARGE_KFF
In the actions tab use Builtin action type and use Call Custom
Library with a specific Event name like the following which we are going to
code in CUSTOM.pll
B)CUSTOM.pll changes
Now download the custom.pll from the AU_TOP to your local machine and
open it in the form builder and edit the event procedure like the following (as
per your requirement)
begin
--null; --commented for PO distribution Charge account KFF disable
XX_READ_ONLY_CHARDGE_ACNT_P('XXREADONLY_POCHARGE_KFF');
end
event;
PROCEDURE
XX_READ_ONLY_CHARDGE_ACNT_P(event_name varchar2) IS
form_name
VARCHAR2
(150);
block_name
VARCHAR2
(150);
item_name
VARCHAR2
(150);
v_mark_read_only
VARCHAR2 (100);
BEGIN
form_name := NAME_IN ('SYSTEM.CURRENT_FORM');
block_name := NAME_IN ('system.cursor_block');
item_name := NAME_IN ('system.cursor_item');
/*xxpk_debug_prc
('CUSTOM.PLL.XX_READ_ONLY_CHARDGE_ACNT_P',
'00',
'STARTs',
'event_name -
:-'
|| event_name,
SUBSTR
(dbms_utility.format_error_backtrace||SQLERRM, 1, 2999)
); */
IF event_name = 'XXREADONLY_POCHARGE_KFF' THEN
/*xxpk_debug_prc
('CUSTOM.PLL.XX_READ_ONLY_CHARDGE_ACNT_P',
'01',
'In IF Condition',
'event_name -
:-'
|| event_name,
SUBSTR
(dbms_utility.format_error_backtrace||SQLERRM, 1, 2999)
); */
FND_KEY_FLEX.UPDATE_DEFINITION(
BLOCK=>'DISTRIBUTIONS',
FIELD=>'charge_account_flex',
INSERTABLE=>'',
UPDATEABLE=>'');
END IF;
/* IF (event_name = 'WHEN-NEW-RECORD-INSTANCE' or event_name =
'WHEN-NEW-BLOCK-INSTANCE'
or event_name = 'WHEN-NEW-FORM-INSTANCE' or
event_name = 'WHEN-NEW-ITEM-INSTANCE')
AND ( FND_PROFILE.VALUE ('RESP_ID')in ('50680') and form_name IN
('POXPOEPO'))THEN
--Set_Menu_Item_Property('VIEW.ATTACHMENTS',ENABLED,
PROPERTY_FALSE);--disable attachment to view
--app_special.enable('ATTACHMENTS',
PROPERTY_OFF); --disable attachment to view
copy(25,'SYSTEM.MESSAGE_LEVEL');--to not show repeative
messages
END IF;*/
exception when others then
null;
/*xxpk_debug_prc
('CUSTOM.PLL.XX_READ_ONLY_CHARDGE_ACNT_P',
'XX',
'MainException',
'event_name -
:-'
|| event_name,
SUBSTR
(dbms_utility.format_error_backtrace||SQLERRM, 1, 2999)
); */
END;
Recompile the custom.pll in the form builder and upload it to
AU_TOP (don't forget to backup the original file before uploading the modified
one)
frmcmp_batch module=CUSTOM.pll
userid=apps/apps output_file=$AU_TOP/resource/CUSTOM.plx compile_all=special
module_type=LIBRARY batch=yes
Restart the application services and test the personalization
========End========================
I never thought this type of logic.. combination of personalisation through form and custom.pll..thanks alot...
ReplyDelete