Модуль GMD – Удалить строку из формулы

Модуль GMD R12.GMD.A.6 (Разработка продукции УНП; Process Manufacturing Product Development)

Процедура для удаления строки из формулы

Читать дальше про “Модуль GMD – Удалить строку из формулы” »

Модуль GMD – Добавить ингредиент в формулу

Модуль GMD R12.GMD.A.6 (Разработка продукции УНП; Process Manufacturing Product Development)

Процедура добавления ингредиента в формулу

Читать дальше про “Модуль GMD – Добавить ингредиент в формулу” »

Модуль GMD — Обновление нормы строки формулы

Модуль GMD R12.GMD.A.6 (Разработка продукции УНП; Process Manufacturing Product Development)

Процедура для обновления нормы строки формулы

Читать дальше про “Модуль GMD — Обновление нормы строки формулы” »

Агрегатная функция stragg — складывает строки

26 Май 2010 4 comments

Скрипт создания функции

create or replace type string_agg_type as object (
 total varchar2(4000),
static function ODCIAggregateInitialize(sctx IN OUT string_agg_type )
 return number,
member function ODCIAggregateIterate(self IN OUT string_agg_type ,
                                     value IN varchar2 ) return number,
member function ODCIAggregateTerminate(self IN string_agg_type,
                                       returnValue OUT  varchar2,
                                       flags IN number) return number,
member function ODCIAggregateMerge(self IN OUT string_agg_type,
                                   ctx2 IN string_agg_type) return number
);
/
create or replace type body string_agg_type is

  static function odciaggregateinitialize(sctx IN OUT string_agg_type)
    return number is
  begin
    sctx := string_agg_type(null);
    return odciconst.success;
  end;
member function odciaggregateiterate(self  IN OUT string_agg_type,
                                     value IN varchar2) return number is
  begin
    self.total := self.total || ',' || value;
    return odciconst.success;
   end;
member function odciaggregateterminate(self        IN string_agg_type,
                                       returnvalue OUT varchar2,
                                       flags       IN number) return number is
  begin
    returnvalue := ltrim(self.total, ',');
    return odciconst.success;
  end;
member function odciaggregatemerge(self IN OUT string_agg_type,
                                   ctx2 IN string_agg_type) return number is
  begin
    self.total := self.total || ctx2.total;
    return odciconst.success;
  end;
end;
/
CREATE or replace FUNCTION stragg(input varchar2) RETURN varchar2
  PARALLEL_ENABLE
  AGGREGATE USING string_agg_type;
/

Читать дальше про “Агрегатная функция stragg — складывает строки” »

Просмотр полномочий пользователя

Запрос для просмотра полномочий пользователя OEBS:

SELECT distinct
       u.user_id,
       u.user_name,
       fr.responsibility_key,
       r.responsibility_name as responsiblity,
       fa.application_short_name,
       a.application_name    as application,
       sg.security_group_key,
       'dbms_output.put_line('''|| r.responsibility_name ||''');'||chr(10)||'fnd_user_pkg.addresp(l_user_name, '''||fa.application_short_name||''', '''|| fr.responsibility_key ||''', '''||sg.security_group_key||''', ''Add by script'', sysdate, null);' as str
FROM fnd_user              u,
     fnd_user_resp_groups  g,
     fnd_application_tl    a,
     fnd_application       fa,
     fnd_responsibility_tl r,
     fnd_responsibility    fr,
     fnd_security_groups   sg
WHERE g.user_id(+) = u.user_id
      AND g.responsibility_application_id = a.application_id
      AND a.application_id = r.application_id
      and fa.application_id = r.application_id
      AND g.responsibility_id  = r.responsibility_id
      and fr.responsibility_id = r.responsibility_id
      and fr.application_id    = r.application_id
      and sg.security_group_id = g.security_group_id
      AND a.LANGUAGE = 'RU'
      AND r.LANGUAGE = 'RU'
      AND u.user_name = '!!!USER_NAME'
ORDER BY user_name, responsiblity, application

Установка профилей для пользователя

14 Май 2010 2 comments

Довольно удобно выставлять профили через скрипт, особенно если их много.
Данный скрипт выставляет профили на уровне пользователя.

DECLARE
 l_user_name varchar2(100) := 'USER_NAME';

 PROCEDURE set_profile_at_user_level(p_user_name                fnd_user.user_name%TYPE,
                                     p_user_profile_option_name fnd_profile_options_vl.user_profile_option_name%TYPE,
                                     p_profile_option_value     fnd_profile_option_values.profile_option_value%TYPE) IS
   l_user_id             fnd_user.user_id%TYPE;
   l_profile_option_name fnd_profile_options_vl.profile_option_name%TYPE;
 BEGIN
 
   SELECT fu.user_id
     INTO l_user_id
     FROM fnd_user fu
    WHERE fu.user_name = p_user_name;
 
   SELECT fpo.profile_option_name
     INTO l_profile_option_name
     FROM fnd_profile_options_vl fpo
    WHERE fpo.user_profile_option_name = p_user_profile_option_name;
 
   IF Fnd_Profile.save(x_name        => l_profile_option_name,
                       x_value       => p_profile_option_value,
                       x_level_name  => 'USER',
                       x_level_value => l_user_id) THEN
     NULL;
   END IF;
 
 END set_profile_at_user_level;

BEGIN

  EXECUTE IMMEDIATE 'ALTER session SET NLS_LANGUAGE=''RUSSIAN''';

  set_profile_at_user_level (l_user_name, 'ВЕБ: время ожидания для сеанса','3600000');
  set_profile_at_user_level (l_user_name, 'ВЕБ: форматная маска даты','DD-MM-RRRR');
  set_profile_at_user_level (l_user_name, 'Служебные программы: диагностика','Y');
  set_profile_at_user_level (l_user_name, 'Цветовая схема Java','SWAN');
  
  set_profile_at_user_level (l_user_name, 'Настройка веб-определений','Y');
  set_profile_at_user_level (l_user_name, 'БОП: диагностика','Y');
  set_profile_at_user_level (l_user_name, 'БОП: активизация ссылки области индивидуальной настройки', 'Y');
  set_profile_at_user_level (l_user_name, 'БОП: режим встраивания индивидуальной настройки','Y');
  COMMIT;

END;

Информация о модулях OEBS + номер версии

SELECT a.application_id         as app_id,
       a.application_short_name as app_code,
       aru.application_name     as ru_app_name,
       aus.application_name     as en_app_name,
       fpi.patch_level
FROM applsys.fnd_application a,
       (SELECT * FROM applsys.fnd_application_tl au 
                 WHERE au.LANGUAGE = 'US') aus,
       (SELECT * FROM applsys.fnd_application_tl ar
                 WHERE ar.LANGUAGE = 'RU') aru,
       fnd_product_installations fpi
WHERE a.application_id = aus.application_id
and a.application_id = aru.application_id
and fpi.application_id(+) = a.application_id
ORDER BY a.application_id, a.application_short_name, aru.application_name

Читать дальше про “Информация о модулях OEBS + номер версии” »

Просмотреть профили пользователя

SELECT fpo.profile_option_name
      ,fpo.user_profile_option_name
      ,fpov.profile_option_value
FROM fnd_profile_option_values fpov,
       fnd_profile_options_vl    fpo
WHERE fpov.application_id    = fpo.application_id
      AND fpov.profile_option_id = fpo.profile_option_id
      AND fpov.level_value = (
                        SELECT fu.user_id
                        FROM fnd_user fu
                        WHERE fu.user_name = '!!!USER_NAME'
                       )

Список организаций

Select t.organization_id     as org_id,
       mpv.organization_code as org_code,
       t.name                as org_name
From hr.hr_all_organization_units t,
     mtl_parameters_view mpv
where mpv.organization_id = t.organization_id
order by t.organization_id, mpv.organization_code

Просмотр блокировок

13 Май 2010 2 comments
select distinct
       o.object_name,
       sh.username || '(' || sh.sid || ',' || sh.serial# || ')' Holder,
       sh.osuser,
       sw.username || '(' || sw.sid || ',' || sw.serial# || ')' Waiter,
decode(lh.lmode,
              1,'null',
              2,'row share',
              3,'row exclusive',
              4,'share',
              5,'share row exclusive',
              6,'exclusive') Lock_Type
from v$session   sw,
     v$lock      lw,
     all_objects o,
     v$session   sh,
     v$lock      lh
where lh.id1 = o.object_id
      and lh.id1 = lw.id1
      and sh.sid = lh.sid
      and sw.sid = lw.sid
      and sh.lockwait is null
      and sw.lockwait is not null
      and lh.type = 'TM'
      and lw.type = 'TM'