Tuesday, February 28, 2017

How to remove Custom DFF


Delete DFF Context
===============
Declare
  Cursor dff_context_cur Is
    Select fdfc.descriptive_flex_context_code
          ,fdfc.descriptive_flexfield_name
          ,fdfc.application_id
    From fnd_descr_flex_contexts fdfc
    Where fdfc.descriptive_flexfield_name = 'Your DFF NAME';
Begin
  For i In dff_context_cur
  Loop
    Fnd_Descr_Flex_Contexts_Pkg.Delete_Row ( i.application_id, i.descriptive_flexfield_name, i.descriptive_flex_context_code);
  End Loop;
END;

Remove Column Usage
=================
Declare
  Cursor dff_col_usage_cur Is
        Select fdfcu.application_column_Name
              ,fdfcu.Descriptive_Flex_Context_Code
              ,fdfcu.Descriptive_Flexfield_Name
              ,fdfcu.Application_id
        From fnd_Descr_Flex_Column_Usages fdfcu
        Where fdfcu.Descriptive_Flexfield_Name = 'Your DFF NAME';
Begin
  For i IN dff_col_usage_cur
  Loop
    Fnd_Descr_Flex_Col_Usage_Pkg.Delete_Row (i.Application_id,i.Descriptive_Flexfield_Name,i.Descriptive_Felx_Context_Code,i.application_column_Name);
End Loop;
End;

Last Remove the registered DFF completely
===============================
Declare
  Cursor dff_flex_cur Is
      Select fdf.Descriptive_Flexfield_Name
              ,fdf.Application_id
      From Fnd_Descriptive_Flexs fdf
      Where fdf.Descriptive_Flexfield_Name = 'Your DFF Name';
Begin
  For i In dff_flex_cur
  Loop
    Fnd_Descriptive_Flexs_Pkg.Delete_Row (i.Application_id,i.Descriptive_Flexfield_Name);
  End Loop;
End;