R12: таблицы HZ (Заказчики)

14 Декабрь 2011 Нет комментариев

Рассмотрим назначение основных HZ таблиц и связи между ними.



HZ_PARTIES

Содержит основную информацию о сущностях (сторонах). Разные сущности могу иметь одинаковое имя.

Типы сущностей

  1. Person — лицо
  2. Organization — организация
  3. Group — группа
  4. Relationship — отношение
Поле Описание
PARTY_ID (PK) ID сущности
PARTY_NUMBER (PK) Номер  сущности
PARTY_NAME Имя  сущности
PARTY_TYPE Тип  сущности

Читать дальше про “R12: таблицы HZ (Заказчики)” »

Oracle FNDLOAD

29 Ноябрь 2011 1 комментарий

Generic Loader (ORACLE FNDLOAD) — используется для выгрузки application entity с БД в текстовый файл.

Данный файл можно изменять руками и переносить в любое место. Формирование данных в файле .ldt происходит согласно конфигурационному .lct файлу.

Поддерживаются два режима работы: download или upload.

Есть интересный GUI для работы с FNDLOAD — Migration LogiK

Возможности FNDLOAD:

  • Concurrent Programs, Executables
  • Request Groups, Request Sets
  • Profile Options
  • Key and Descriptive Flexfields
  • Menus and Responsibilities
  • Forms and Form Functions/Personalizations
  • Attachments
  • Messages
  • Value Sets and Values
  • Lookup Types
  • User Responsibilities
  • Printer Definitions
  • FND Dictionary
  • Help Configuration
  • Document Sequences
  • Alerts
  • Concurrent Manager Schedules
  • WEB ADI
  • Approvals Management Engine

Читать дальше про “Oracle FNDLOAD” »

Categories: Oracle e-Business Suite Tags: ,

API добавления полномочия для пользователя

3 Ноябрь 2011 2 comments

С помощью данного API можно добавить полномочие пользователю

begin
  -- Call the procedure
  fnd_user_pkg.addresp(username       => :username,
                       resp_app       => :resp_app,
                       resp_key       => :resp_key,
                       security_group => :security_group, -- в основном 'STANDARD'
                       description    => :description,    -- любой коммент
                       start_date     => :start_date,
                       end_date       => :end_date);
  commit;                    
  dbms_output.put_line('Responsibility Added Successfully');
exception
 when others then
   dbms_output.put_line(' Responsibility is not added due to ' 
                        || substr(SQLERRM, 1, 100));
   rollback;
end;

И весьма полезный скрипт, c помощью которого можно быстро перетянуть полномочия с одного инстанса на другой.
Читать дальше про “API добавления полномочия для пользователя” »

Как посмотреть OPP service log

При выполнении concurrent request в Oracle E-business suite, который строится с использованием XML Publisher, можно столкнуться с тем что concurrent завершается со статусом Warning.

В логе будет следующая запись:

+————- 1) PUBLISH ————-+
Запуск заключительной обработки запроса 565518 в узле PART4: 03-НОЯ-2011 10:37:15.
Ошибка заключительной обработки запроса 565518: 03-НОЯ-2011 10:37:15. Сообщение об ошибке:
One or more post-processing actions failed. Consult the OPP service log for details.
+—————————————+

Эта запись говорит о том, что по каким-то причинам не смог прицепиться шаблон отчета.

Читать дальше про “Как посмотреть OPP service log” »

Иерархия организаций

28 Октябрь 2011 Нет комментариев

Запрос для вывода иерархии организаций.
Список существующих иерархий можно увидеть в таблице hr.per_organization_structures.

 SELECT LPAD(' ', 10 * (LEVEL - 1)) || org.name hierarchy,
       org.organization_id
  FROM hr_all_organization_units org, per_org_structure_elements pose
 WHERE 1 = 1
   AND org.organization_id = pose.organization_id_child
   AND pose.org_structure_version_id = &p_structure_version_id
-- START WITH org.organization_id =
CONNECT BY PRIOR pose.organization_id_child = pose.organization_id_parent
 ORDER SIBLINGS BY org.location_id, pose.organization_id_child;

Информация о сотруднике

28 Октябрь 2011 Нет комментариев

ОЕБС Информация о сотруднике
Запрос выводит информацию о сотруднике, основная таблица fnd_user.

SELECT u.user_id           as user_id
     , u.user_name         as user_name
     , pap.full_name       as emp_name
     , pap.employee_number as emp_number
     , pj.name             as job_name
     --
FROM fnd_user          u
   , per_all_people_f  pap
   , per_assignments_f paf
   , per_jobs          pj
WHERE 1=1
      --and u.user_id = fnd_global.user_id
      and u.employee_id = pap.person_id(+)
      and sysdate between pap.effective_start_date(+) and pap.effective_end_date(+)
      -- per_assignments_f
      and paf.person_id (+) = pap.person_id
      and sysdate between paf.effective_start_date(+) and paf.effective_end_date(+)
      and paf.primary_flag(+) = 'Y'
      -- per_jobs
      and pj.job_id(+) = paf.job_id;

Замена N-ного символа в строке

28 Октябрь 2011 2 comments

Для замены N-ного символа в строке, можно обойтись и без SUBSTR — использовать REGEXP_REPLACE.

select regexp_replace('208010100000','.','X', 5, 1) as res from dual
union all
select regexp_replace('208010100000','.','X', 2, 1) as res from dual;

RES
------------
2080X0100000
2X8010100000

SVN Keywords

27 Октябрь 2011 Нет комментариев

SVN

В TortoiseSVN есть удобная возможность использовать ключевые слова.

Например, указав в тексте $Id$, можно получить следующую строку:
«$Id: start_test.sh 1217 2011-10-27 13:26:02Z Ivanov $»

При желании, мы можем использовать данную возможность в объектах БД для отслеживания авторства и версионности.  Все ключевые слова являются регистрозависимыми, вставляются в код следующим образом: $keyword$.

Date — описывает дату последнего изменения файла в репозитории
Revision – отображает ревизию последнего изменения файла в репозитории
Author – отображает автора последних изменений в репозитории
HeadURL – отображает URL на последнюю версию файла в репозитории
Id – предоставляет комбинированную информацию из предыдущих ключевых слов

Для активации keywords, заходим в конфигурационный файл:
— в разделе[miscellany] раскомментируем enable-auto-props = yes
— в разделе [auto-props] добавляем строку
*.* = svn:keywords=LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Date Revision Author

После этого, все новые файлы будут учитывать ключевые слова при commit. Если же хотим добавить keywords для уже существующих файлов, то добавляем их через свойства TortoiseSVN для каждого файла.

SVN Свойства файла

Categories: Others Tags: ,

Функция LISTAGG (объединение строк)

20 Сентябрь 2011 18 comments

LISTAGG упорядочивает данные, объединенные в группы конструкцией ORDER BY, затем соединяет указаный столбец measure_expr.

1) Как одиночная агрегатная функция, LISTAGG обрабатывает все строки и возвращает одно значение.

2) Как групповая агрегатная функция, LISTAGG обрабатывает и возвращает данные для каждой группы определенной в GROUP BY.

3) Как аналитическая функция, LISTAGG обрабатывает данные разбитые на блоки, задаваемые одним или несколькими выражениями query_partition_clause.

Пример агрегатной функции

SQL> select deptno, LISTAGG(t.ename, ', ') WITHIN GROUP (order by t.empno) as ename_list
  2  from scott.emp t
  3  group by deptno;

DEPTNO ENAME_LIST
------ --------------------------------------------------------------------------------
    10 CLARK, KING, MILLER
    20 SMITH, JONES, SCOTT, ADAMS, FORD, SMIT2
    30 ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES

Пример аналитической функции

SQL> select deptno,
  2         ename,
  3         job,
  4         hiredate, listagg(t.ename, ', ') 
  6           WITHIN GROUP(order by t.empno) over(partition by deptno) as ename_list
  7  from scott.emp t
  8  where hiredate > to_date('01-01-1982','dd-mm-yyyy');

DEPTNO ENAME      JOB       HIREDATE    ENAME_LIST
------ ---------- --------- ----------- -----------------------
    10 MILLER     CLERK     23.01.1982  MILLER
    20 SCOTT      ANALYST   09.12.1982  SCOTT, ADAMS, SMIT2
    20 ADAMS      CLERK     12.01.1983  SCOTT, ADAMS, SMIT2
    20 SMIT2      CLERK     25.07.2011  SCOTT, ADAMS, SMIT2

Oracle Database SQL Language Reference 11g Release 2 : LISTAGG

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

19 Сентябрь 2011 Нет комментариев

Рассмотрим функции для работы с nested tables и varrays (11G)

Сделаем nested tables для примеров:

create or replace type test_number_table as table of number(20);

CARDINALITY

CARDINALITY возвращает число элеметов в nested table. Тип возращаемого значения NUMBER.
Если вложенная таблица пустая или is null, тогда CARDINALITY вернет NULL.

SQL> select CARDINALITY(test_number_table(1,2,3,4,5,1,2)) as t_cardinality from dual;

T_CARDINALITY
-------------
            7

Читать дальше про “Функции для работы с коллекциями” »