Tuesday, June 28, 2022

How to register custom views in Oracle R12

 Declare
 l_appl_short_name varchar2(150) := 'XXCUS';
 L_VIEW_NAME  varchar2(150) := 'XX_EXTEN_REQS_V'; 
 L_VIEW_TEXT varchar2(32000);
 L_COUNT number := 0;
Begin
 begin
   select VIEW_NAME, TEXT  
    into L_VIEW_NAME,L_VIEW_TEXT
  from USER_VIEWS UV
  where UV.VIEW_NAME = L_VIEW_NAME
    and not exists (select 1
                    from FND_VIEWS FV 
                    where UV.VIEW_NAME = FV.VIEW_NAME );
     FND_DICTIONARY_PKG.UPLOADVIEW( X_APPLICATION_SHORT_NAME     => l_appl_short_name,
                                    X_VIEW_NAME                  => L_VIEW_NAME,
                                    X_TEXT                       => L_VIEW_TEXT,
                                    X_DESCRIPTION                => 'Customer View',
                                    X_USER_ID                    => -1 );
      commit;
   EXCEPTION 
     when NO_DATA_FOUND then
       DBMS_OUTPUT.PUT_LINE('View definition already exists.');
  End;                                  
                                    
  for REC in (select TABLE_NAME, COLUMN_ID, COLUMN_NAME
                from ALL_TAB_COLS atc
                where TABLE_NAME = L_VIEW_NAME
                 and not exists (select 1 
                                  from FND_VIEWS FV,
                                       FND_VIEW_COLUMNS FVC
                                  where FV.VIEW_ID = FVC.VIEW_ID
                                    and FV.VIEW_NAME = ATC.TABLE_NAME
                                    and FVC.COLUMN_NAME = atc.COLUMN_NAME )
                order by COLUMN_ID) LOOP
                
       FND_DICTIONARY_PKG.UPLOADVIEWCOLUMN( X_APPLICATION_SHORT_NAME    => l_appl_short_name,
                                              X_VIEW_NAME      => REC.TABLE_NAME ,
                                              X_VIEW_COLUMN_NAME   => REC.COLUMN_NAME ,
                                              X_VIEW_COLUMN_SEQUENCE => rec.COLUMN_ID,
                                              X_USER_ID =>  -1    );
  
     l_count := l_count +1 ;
  End loop;
  
  DBMS_OUTPUT.PUT_LINE(L_COUNT||' columns are registered.');
  
  if L_COUNT > 0  then 
    commit;
  end if;
  
EXCEPTION 
 when OTHERS then
   DBMS_OUTPUT.PUT_LINE(SQLERRM);
     rollback;  
End;

Wednesday, February 16, 2022

Query for User wise Responsibility , Menus and Functions

select distinct
       FU.USER_NAME,
       FU.END_DATE USER_END_DATE,
       fr.responsibility_name,
       fm.user_menu_name,
       fme.prompt prompt_name,
       fff.user_function_name
from   
       FND_USER fu,
       FND_USER_RESP_GROUPS_DIRECT urg,
       apps.fnd_menu_entries_vl fme,
       apps.fnd_menus_vl fm,
       apps.fnd_form_functions_vl fff,
       apps.fnd_form_vl ff,
       APPS.FND_RESPONSIBILITY_VL FR
where fff.user_function_name = 'XX_FUNC_NAME'
and FU.USER_ID = URG.USER_ID
and FU.END_DATE is null
and FR.RESPONSIBILITY_ID = URG.RESPONSIBILITY_ID
and    FME.FUNCTION_ID = FFF.FUNCTION_ID
and    FM.MENU_ID = FME.MENU_ID
AND    fr.menu_id = fm.menu_id ;