Кто съел весь TEMP?

13 Сентябрь 2012 Нет комментариев

Запрос для просмотра сессий использующих TEMP

select s.sid
     , s.client_identifier
     , s.status
     , sum(round(u.blocks*8192/1024/1024,3)) "TEMP usage, Mb"
     , s.osuser, s.machine, s.module, s.action
  from v$session s,
       v$sort_usage u
 where s.saddr = u.session_addr
   and u.blocks*8192/1024 > 128 -- отсеиваем мелочь
group by s.sid, s.osuser, s.machine, s.module, s.action, s.client_identifier,s.status
order by "TEMP usage, Mb" desc
Categories: SQL Tags: , , ,

R12: Таблицы IBY

29 Август 2012 Нет комментариев

Описание нескольких таблиц из схемы IBY (Payments):

IBY.IBY_EXTERNAL_PAYEES_ALL
Платежные атрибуты поставщика (получателя)

IBY.IBY_EXTERNAL_PAYERS_ALL
Платежные атрибуты заказчика (плательщика)

IBY.IBY_ACCOUNT_OWNERS
Владельцы банковского счета

IBY.IBY_PMT_INSTR_USES_ALL
Назначения платежных средств.
Содержит связь между платежными средствами (payment instruments) и плательщиком/получателем (Payer/Payee). Платежным средством может быть кредитная карта или банковсвкий счет.

IBY.IBY_EXT_BANK_ACCOUNTS
Внешние банковские счета
Oracle EBS IBY tables

SLA — Как узнать поле для связки со счетом-фактурой

Посмотреть поля по которым можно связать счет-фактуру (СФ) и данные в XLA таблицах можно через форму настройки.
Аналогичным способом можно посмотреть связку для платежей, поступлений и т.д.

Полномочия «Payables Manager» — меню «Setup» — «Accounting Setup» — «Subledger Accounting Setup» — «Accounting Methods Builder» — «Events» — «Event Model»

Связь между счетом-фактурой и xla

Oracle Forms: Удалить элемент из списка (List item)

В Oracle Forms для удаления элемента из списка (List item)
используем комбинацию CTRL+SHIFT+< .

Удаляем элемент из списка Oracle Forms

Categories: Oracle Forms Tags: ,

Модуль AR – Обновление корр. счета банка

25 Апрель 2012 Нет комментариев

Пример использования API для обновления корреспондентского счёта банка. (корр. счёт)

declare
 p_brunch_number varchar2(30) := '!NUM';
 p_ksnp          varchar2(40) := '!CORR_ACCOUNT';
--
 l_contact_point_rec   hz_contact_point_v2pub.contact_point_rec_type;
 l_edi_rec             hz_contact_point_v2pub.edi_rec_type;
 l_obj_vers            NUMBER;
 l_party_id            number;
--
  x_return_status varchar2(1);
 x_msg_count     number;
 x_msg_data      varchar2(4000);
begin
  
 select party_id into l_party_id
 from ar.hz_organization_profiles hop 
 where 1=1
       and sysdate between hop.effective_start_date and nvl(hop.effective_end_date, sysdate+1)
       and hop.bank_or_branch_number = p_brunch_number;
 
 dbms_output.put_line('l_party_id='||l_party_id);

 SELECT contact_point_id, object_version_number 
  into l_contact_point_rec.contact_point_id, l_obj_vers
 FROM hz_contact_points
 WHERE contact_point_type = 'EDI'
       AND owner_table_name = 'HZ_PARTIES'
       AND owner_table_id = l_party_id;
       
 dbms_output.put_line('l_obj_vers='||l_obj_vers);
 dbms_output.put_line('contact_point_id='||l_contact_point_rec.contact_point_id);        

 l_edi_rec.edi_ece_tp_location_code := p_ksnp;
 
  hz_bank_pub.update_edi_contact_point (fnd_api.g_true,
                                        l_contact_point_rec,
                                        l_edi_rec,
                                        l_obj_vers,
                                        x_return_status,
                                        x_msg_count,
                                        x_msg_data
                                       );   

  dbms_output.put_line('--');                                         
  dbms_output.put_line('Return status = '||x_return_status);                                                                     
  if x_return_status != fnd_api.g_ret_sts_success then
    if x_msg_count = 1 then
      dbms_output.put_line ('Error:' || x_msg_data);      
    else
      FOR i IN 1 .. x_msg_count LOOP
        dbms_output.put_line('Error:' || fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false) );
      END LOOP;
    end if;
  end if;   
   
  -- commit; 
exception
  when others then
       dbms_output.put_line('SQLERRM:'||SQLERRM||chr(10));
       dbms_output.put_line('FORMAT_ERROR_BACKTRACE:'||chr(10)||dbms_utility.format_error_backtrace);
       raise;                
end;                        

Модуль AR — Обновление БИК банка

25 Апрель 2012 Нет комментариев

Пример использования API для обновления БИК банка.

declare
 p_brunch_number varchar2(30) := '!NUM';
 p_bic           varchar2(9)  := '!NEW_BIC';
--
 l_contact_point_rec   hz_contact_point_v2pub.contact_point_rec_type;
 l_eft_rec             hz_contact_point_v2pub.eft_rec_type;
 l_eft_vers            number;
 l_party_id            number;
--
 x_return_status varchar2(1);
 x_msg_count     number;
 x_msg_data      varchar2(4000);
begin
  
 select party_id into l_party_id
 from ar.hz_organization_profiles hop 
 where 1=1
       and sysdate between hop.effective_start_date and nvl(hop.effective_end_date, sysdate+1)
       and hop.bank_or_branch_number = p_brunch_number;
 
 dbms_output.put_line('l_party_id='||l_party_id);

 SELECT contact_point_id, object_version_number 
  into l_contact_point_rec.contact_point_id, l_eft_vers
 FROM hz_contact_points
 WHERE contact_point_type = 'EFT'
       AND owner_table_name = 'HZ_PARTIES'
       AND owner_table_id = l_party_id;
       
 dbms_output.put_line('l_eft_vers='||l_eft_vers);
 dbms_output.put_line('contact_point_id='||l_contact_point_rec.contact_point_id);        

 l_eft_rec.eft_swift_code := p_bic;
 
 hz_bank_pub.update_eft_contact_point ( fnd_api.g_true,
                                        l_contact_point_rec,
                                        l_eft_rec,
                                        l_eft_vers,
                                        x_return_status,
                                        x_msg_count,
                                        x_msg_data
                                       );

  dbms_output.put_line('--');                                         
  dbms_output.put_line('Return status = '||x_return_status);                                                                     
  if x_return_status != fnd_api.g_ret_sts_success then
    if x_msg_count = 1 then
      dbms_output.put_line ('Error:' || x_msg_data);      
    else
      FOR i IN 1 .. x_msg_count LOOP
        dbms_output.put_line('Error:'
          ||fnd_msg_pub.get(fnd_msg_pub.g_next,fnd_api.g_false));
      END LOOP;
    end if;
  end if;   
   
  -- commit; 
exception
  when others then
       dbms_output.put_line('SQLERRM:'||SQLERRM||chr(10));
       dbms_output.put_line('FORMAT_ERROR_BACKTRACE:'||chr(10)
         ||dbms_utility.format_error_backtrace);
       raise;                
end;                        

Поиск VIEW по используемым объектам

24 Апрель 2012 Нет комментариев

Поиск VIEW

Запрос для поиска VIEW, в которой используются определенные объекты.
Можно, например, использовать для поиска связки между таблицами.

with s as (
select 'XLA_AE_HEADERS' obj1, 'XLA_AE_LINES' obj2 from dual
)
select owner, name from All_Dependencies t, s
where type='VIEW' and t.REFERENCED_NAME like s.obj1
 intersect      
select owner, name from All_Dependencies t, s
where type='VIEW' and t.REFERENCED_NAME like s.obj2

OWNER                          NAME
------------------------------ ------------------------------
APPS                           ARFV_ADJ_DISTS_ALC_V
APPS                           ARFV_APP_DISTS_ALC_V
APPS                           ARFV_CASH_DISTS_ALC_V
APPS                           ARFV_FREIGHT_DISTS_ALC_V
APPS                           ARFV_REVENUE_DISTS_ALC_V
APPS                           ARFV_TAX_DISTS_ALC_V
APPS                           ARFV_UNREC_DISTS_ALC_V
APPS                           ARFV_UNREV_DISTS_ALC_V
...
Categories: SQL Tags: , , ,

Ant при разработке с использованием OAF

24 Апрель 2012 3 comments

При разработке проектов с использованием OAF и JDeveloper возникла необходимость частого переноса (или развертывания — deploy) приложений с одного экземпляра системы на другой.

Операция переноса состоит из пяти шагов:

  1. Компиляция java классов
  2. Перенос java классов на сервер приложений (в каталог $JAVA_TOP)
  3. Перенос xml файлов Entity Objects, View Objects, Application Modules ($JAVA_TOP)
  4. Импорт xml файлов Pages, Regions с помощью утилиты import
  5. Импорт xliff файлов

Проделав эту операцию пару раз вручную, решил все это дело автоматизировать.
Вся автоматизация построена на известном продукте Apache Ant.

Состоит из четырех файлов

  1. <project>.bat
  2. <project>.xml
  3. build.xml
  4. <project>.properties

, где <project> имя Вашего проекта.

Читать дальше про “Ant при разработке с использованием OAF” »

SLA — Запрос для просмотра данных учета (Subledger Accounting)

13 Апрель 2012 Нет комментариев

Запрос для просмотра данных учета

select xte.application_id        as appl_id
      ,xte.entity_code           as entity_code
      ,ec.event_class_code       as event_class_code
      ,ec.name                   as event_class
      ,xal.code_combination_id   as cc_id     
      ,fnd_flex_ext.get_segs('SQLGL','GL#',gl.chart_of_accounts_id, xal.code_combination_id)      as ACCOUNT
      --,xla_oa_functions_pkg.get_ccid_description(gl.chart_of_accounts_id,xal.code_combination_id) as account_description
      ,xah.ae_header_id          as xah_ae_header_id
      ,xal.ae_line_num           as xal_ae_line_num
      ,xal.ledger_id             as xal_ledger_id
      ,xte.ledger_id             as xte_ledger_id
      ,xae.event_type_code       as event_type_code
      ,et.name                   as event_type
      ,xae.event_number          as event_number
      ,xal.accounting_class_code as acc_class_code   -- класс учета
      ,lk1.meaning               as accounting_class
      ,xal.accounting_date       as accounting_date
      ,xal.accounted_dr          as accounted_dr
      ,xal.accounted_cr          as accounted_cr
      ,xal.currency_code         as currency_code
      ,nvl(xte.source_id_int_1, -99) as source_id_int_1
      ,decode(xal.party_type_code, 'C', xal.party_id)      as customer_id
      ,decode(xal.party_type_code, 'C', xal.party_site_id) as customer_site_id
from xla.xla_transaction_entities  xte
   , xla.xla_ae_headers            xah
   , xla.xla_ae_lines              xal
   , xla.xla_events                xae
   , xla_lookups                   lk1
   , xla_gl_ledgers_v              gl   
   , xla.xla_event_types_tl        et
   , xla.xla_event_classes_tl      ec
where 1=1
      -- sla xah
      and xah.entity_id      = xte.entity_id
      and xah.application_id = xte.application_id
      and xah.ledger_id      = xal.ledger_id
      -- sla xal
      and xal.ae_header_id   = xah.ae_header_id
      and xal.application_id = xah.application_id
      and (nvl(xal.accounted_dr,0) != 0 or nvl(xal.accounted_cr,0)!=0)
      -- sla xae
      and xae.application_id  = xah.application_id
      and xae.event_id        = xah.event_id  
      -- lk1
      and lk1.lookup_code = xal.accounting_class_code
      and lk1.lookup_type = 'XLA_ACCOUNTING_CLASS'
      -- gl
      and gl.ledger_id = xah.ledger_id
      -- et 
      and et.application_id  = xte.application_id
      and et.entity_code     = xte.entity_code      
      and et.event_type_code = xae.event_type_code
      and et.language        = USERENV('LANG')
      -- ec
      and ec.application_id   = xte.application_id
      and ec.entity_code      = xte.entity_code
      and ec.event_class_code = et.event_class_code
      and ec.language         = USERENV('LANG')
      -- ======
      -- and xte.entity_code    = 'RECEIPTS'
      -- and xte.application_id = 222
      -- and xte.ledger_id = fnd_profile.value('GL_SET_OF_BKS_ID')
      -- and nvl(source_id_int_1,(-99)) = 

PL/SQL Developer — отображение чисел (number -> char)

13 Апрель 2012 Нет комментариев

Иногда требуется отследить числа (визуально), с большим количеством знаков после точки.
Но столкнемся с тем, что PL/SQL Developer при отображении обрезает число.

select 1.000000000000001234567 v from dual
union all
select 1.000000100000001234567 from dual
union all
select 1.001000000000001234567 from dual
union all
select 1.123456789123456789123 from dual
Отображение чисел

В PL/SQL Developer есть полезная опция Number fields to_char
Читать дальше про “PL/SQL Developer — отображение чисел (number -> char)” »