Here is a small script to delete all the segments in a Descriptive FlexField.
This is useful in some cases because FNDLOAD does not perform a delete of segments.
Hence such a script can be used for cleanup of the DFF.
Simply replace the contents in "bold" text below to make this work on your environment
set serveroutput on size 100000 ;
--Script to clean up DFF Segments
DECLARE
l_flexfield_type fnd_flex_key_api.flexfield_type;
l_structure_type fnd_flex_key_api.structure_type;
l_segment_type fnd_flex_key_api.segment_type;
l_flex_num VARCHAR2(1000);
BEGIN
FOR p_rec IN (SELECT end_user_column_name,
descriptive_flexfield_name,
descriptive_flex_context_code
FROM fnd_descr_flex_col_usage_vl
WHERE (application_id = 800)
AND (descriptive_flexfield_name = 'Extra Person Info DDF')
AND (descriptive_flex_context_code LIKE
'XX_DFF_CONTEXT_HERE')) LOOP
fnd_flex_dsc_api.delete_segment(appl_short_name => 'PER',
flexfield_name => p_rec.descriptive_flexfield_name,
CONTEXT => p_rec.descriptive_flex_context_code,
SEGMENT => p_rec.end_user_column_name);
dbms_output.put_line('Segment ' || p_rec.end_user_column_name ||
' deleted ');
END LOOP;
END;
Comments
Inside a loop, you can delete all segments and disable all contexts, hence making the DFF ineffective.
Quote:
We have a requirement where in we want some of the segments of a DFF read only for certain set of users. For e.g. if there are 6 DFFs, a XYZ inquiry user should update attribute 1, 2 and 3 but attributes 4,5 and 6 should be read only. However, XYZ Super User should be able to update all the 6 attributes.
I have browsed through all of your articles and tried everything from context sensitive flexfields, forms personalization s, security enabled DFFs except for custom.pll.
Thanks,
Ajay
RSS feed for comments to this post