13.10.2014

OeBS: Обновление параметра FND_INIT_SQL на уровне полномочий

Параметр содержит анонимный блок, выполняющийся при инициализации полномочий. Ниже - пример кода изменения значения параметра для группы полномочий.

declare
  cursor cur is
             select opv.*
                    from FND_PROFILE_OPTION_VALUES opv,
                         FND_RESPONSIBILITY_TL v,
                         FND_PROFILE_OPTIONS opt
                    where v.responsibility_id = opv.level_value
                    and   opt.profile_option_id = opv.profile_option_id
                    and   v.language = 'RU'
                    and   v.responsibility_name like '%manager%'
                    and   opt.profile_option_name = 'FND_INIT_SQL';
  l_params_row      FND_PROFILE_OPTION_VALUES%ROWTYPE; 
begin
  open cur;
  loop
    fetch cur into l_params_row;
    exit when cur%NOTFOUND;
      l_params_row.profile_option_value := 'begin xxmy_pkg.init_access; end;';
      FND_PROFILE_OPTION_VALUES_PKG.UPDATE_ROW(X_APPLICATION_ID              => l_params_row.application_id,
                                               X_PROFILE_OPTION_ID           => l_params_row.profile_option_id,
                                               X_LEVEL_ID                    => l_params_row.level_id,
                                               X_LEVEL_VALUE                 => l_params_row.level_value,
                                               X_LEVEL_VALUE_APPLICATION_ID  => l_params_row.level_value_application_id,
                                               X_LEVEL_VALUE2                => l_params_row.level_value2,
                                               X_PROFILE_OPTION_VALUE        => l_params_row.profile_option_value,
                                               X_LAST_UPDATE_DATE            => sysdate ,
                                               X_LAST_UPDATED_BY             => FND_GLOBAL.USER_ID,
                                               X_LAST_UPDATE_LOGIN           => FND_GLOBAL.LOGIN_ID);
    commit;
    end loop;
end;

Комментариев нет :