Модуль PA (Проекты) — полезные запросы

Список проектов

select * from pa.pa_projects_all;


Просмотр позиций поставки

select * from pa.pa_proj_elements t where t.OBJECT_type = 'PA_DELIVERABLES';
select * from pa_deliverables_v;
select * from oke_deliverables_b where source_code = 'PA';


Просмотр типов позиций поставки

select * from pa.pa_task_types t where t.object_type = 'PA_DLVR_TYPES';


Просмотр статусов позиций поставки

select * from pa.pa_project_statuses s
 where 1 = 1
       and s.status_type = 'DELIVERABLE'
       and trunc(sysdate) between nvl(s.start_date_active, trunc(sysdate)) and
                                  nvl(s.end_date_active, trunc(sysdate));


Список задач

select * from pa.pa_proj_elements t where t.OBJECT_type = 'PA_TASKS';


Типы задач

select * from PA_TASK_TYPES t where object_type = 'PA_TASKS';


Типы проектов

select * from PA_PROJECT_TYPES_ALL t;


Статьи затрат

select * from pa_expenditure_types_desc_v;

OAF: Controller

21 Октябрь 2010 9 comments

Oracle Application Framework Controller это простой java класс, являющийся подклассом oracle.apps.fnd.framework.webui.OAControllerImpl.

В контроллере можно определить:
1) реакция на действия пользователя на странице
2) инициализация или изменение свойств элементов страницы (web beans)

Пример java класса контроллера:

Читать дальше про “OAF: Controller” »

Workflow: Пример вызываемой процедуры

21 Октябрь 2010 1 комментарий
  procedure XX_TEST( itemtype  IN  VARCHAR2
                   , itemkey   IN  VARCHAR2
                   , actid     IN  NUMBER
                   , funcmode  IN  VARCHAR2
                   , resultout OUT VARCHAR2
                   )
  is
    l_proj_element_id NUMBER;
    --
    l_marker NUMBER; -- служит для обозначения шага
  begin

    l_marker := 10;

    xxdebug('XX_TEST');
    xxdebug('itemtype = '||itemtype  ,'itemkey = ' ||itemkey);
    xxdebug('actid = '   ||actid     ,'funcmode = '||funcmode);
    xxdebug('--');

    -- Проверяем статус workflow
    IF funcmode != WF_ENGINE.ENG_RUN THEN
      wf_log_pkg.string(5,'XX_TEST','Not in RUN mode');
      xxdebug_error('funcmode = '||funcmode);
      RETURN;
    END IF;

    -- далее основная логика процедуры

    -- получаем ID позиции поставки
    l_proj_element_id := WF_ENGINE.GetItemAttrText ( itemtype => itemtype
                                                   , itemkey  => itemkey
                                                   , aname    => 'PROJ_ELEMENT_ID' );

    xxdebug('proj_element_id='||l_proj_element_id);
    l_marker := 20;

    -- устанавливаем нового владельца
    WF_ENGINE.SetItemAttrText(itemtype, itemkey, 'NEW_DELIV_OWNER_ID', 141);

    resultout := WF_ENGINE.ENG_COMPLETED;
    RETURN;

  EXCEPTION
    WHEN OTHERS THEN
      xxdebug_error(SQLERRM, 'marker = '||l_marker);
      WF_CORE.context ( g_pkg_name
                      , 'XX_TEST'
                      , itemtype
                      , itemkey
                      , TO_CHAR(actid)
                      , funcmode
                      , SQLERRM
                      , 'marker = '||l_marker );
      RAISE;
  END;
Categories: Workflow Tags: ,

Что такое Oracle Application Framework (OAF)

13 Октябрь 2010 15 comments

Oracle Application Framework (OA Framework) – служит для разработки и кастомизации HTML страниц Oracle E-Business Suite.

OA Framework основан на стандарте J2EE и использует шаблон проектирования Model–View-Controller (MVC).


Model – отвечает за бизнесс логику, использует Oracle Business Components for Java (BC4J) : AM (Application Module), VO (View Object), EO (Entity Object)

View — отвечает за отображение информации (пользовательский интерфейс).

Controller — интерпретирует данные, введённые пользователем, и информирует модель и представление о необходимости соответствующей реакции. Прочитать больше про контроллер.

PL/SQL Developer: Start debugger

29 Сентябрь 2010 Нет комментариев

Если при старте дебагера в окне Test выскакивает ошибка

необходимо зайти с правами админа и выполнить

grant debug connect session to user;
Categories: Others Tags: ,

Модуль INV — Связь позиции с категорией

29 Сентябрь 2010 Нет комментариев
SELECT msi.organization_id,
       msi.inventory_item_id,
       msi.segment1,
       msi.description,
       mic.category_set_name,
       mic.segment1,
       mic.segment2
FROM mtl_system_items_vl   msi,
     mtl_org_assign_v      moa,
     mtl_item_categories_v mic
WHERE moa.organization_id = msi.organization_id
      AND moa.inventory_item_id = msi.inventory_item_id
      AND mic.organization_id = msi.organization_id
      AND mic.inventory_item_id = msi.inventory_item_id
      AND moa.assigned_flag = 'Y'
order by msi.organization_id, msi.inventory_item_id;

Workflow: Отправка уведомления

15 Сентябрь 2010 34 comments

Данная статья описывает процесс создания workflow процесса для отправки уведомления.

Версия Oracle Workflow Builder 2.6.3.5

1 Создание нового Workflow

Открываем Oracle Workflow Builder

Читать дальше про “Workflow: Отправка уведомления” »

Workflow: WFLOAD (утилита загрузки)

7 Сентябрь 2010 Нет комментариев

Утилита WFLOAD позволяет перемещать данные workflow между файлом и базой данных.

DOWNLOAD

Копирует файл на сервер приложений.

WFLOAD username/password 0 Y DOWNLOAD XX_TEST.wft XX_TEST

UPGRADE

Загружает файл в БД.

WFLOAD username/password 0 Y UPGRADE XX_TEST.wft
Categories: Workflow Tags: ,

Workflow: Ошибка при попытке коннекта к базе (1300)

7 Сентябрь 2010 Нет комментариев

symptom: Error when loading workflow from the database
symptom: 1300: Could not load.
symptom: 1114: Could not load from database.
symptom: 1101: Could not load item types from database. FILTER=%
symptom: 333: Could not set item type properties for ‘FNDCMSTD’.
symptom: 333: Could not set item type properties for ‘FNDCMSTD’.
symptom: 306: Invalid display name ‘Hintergrundmanager — Funktionen ‘.
symptom: 203:Value contains leading or trailing spaces
symptom: Trailing spaces exist in table WF_ITEM_TYPES_TL

Решение

1) Проверить таблицу WF_ITEM_TYPES_TL на существование замыкающих пробелов в столцах DISPLAY_NAME и DESCRIPTION
2) Если пробелы присутствуют выполнить update

   update WF_ITEM_TYPES_TL
   set DISPLAY_NAME = RTRIM(DISPLAY_NAME);

   update WF_ITEM_TYPES_TL
   set DESCRIPTION = RTRIM(DESCRIPTION);

Функция PERCENTILE_DISC

3 Сентябрь 2010 Нет комментариев

Функция принимает на вход процентное значение (P) и условие сортировки, возвращает элемент из набора — наименьшее значение функции CUME_DIST, которое больше или равно значению P.

PERCENTILE_DISC(expr) WITHIN GROUP
   (ORDER BY expr [ DESC | ASC ])
   [ OVER (query_partition_clause) ]

Пример

with t as
(select 1 id, 10 val  from dual
  union all
 select 2 id, 20 val  from dual
  union all
 select 3 id, 30 val  from dual
  union all
 select 4 id, 50 val  from dual
  union all
 select 5 id, 70 val  from dual
)
select  id,
        val,
        cume_dist() over (order by val) "Cume_Dist",
        percentile_disc(0.50) within group (order by val) over() "percentile_disc"
from t
order by val;

        ID        VAL  Cume_Dist percentile_disc
---------- ---------- ---------- ---------------
         1         10        0,2              30
         2         20        0,4              30
         3         30        0,6              30
         4         50        0,8              30
         5         70          1              30
Categories: SQL Tags: ,