Архив

Архив автора

OEBS Меню полномочий — Избранное (Top Ten List)

15 Октябрь 2012 Нет комментариев

Для добавления функций в избранное по полномочиям — API:FND_SIGNON.UPDATE_NAVIGATOR


Читать дальше про “OEBS Меню полномочий — Избранное (Top Ten List)” »

Трассировка сессии — event 10046

19 Сентябрь 2012 2 comments

Трассировка сессии Oracle помогает найти проблемные запросы и понять в чем именно причина.

Что именно будет записываться в трассировочный файл, определяется номером события (event).
Стандартный номер события 10046. Именно такой уровень устанавливается при выполнении команды

alter session set sql_trace=true;

Список данных событий и для чего они предназначены можно посмотреть здесь EventReference

 

Событие трассировки 10046 / Trace event 10046

Включить трассировку в текущей сессии

alter session set events '10046 trace name context forever, level 1';

выключить трассировку в текущей сессии

alter session set events '10046 trace name context off';

Уровни:

  • 0 — трассировка отключена
  • 1 — стандартная трассировка
  • 4 — добавлены значения связываемых (binds) переменных
  • 8 — добавлены события ожидания (waits)
  • 12 — связываемые переменные + события ожидания

Для включения трассировки в другой сессии можно воспользоваться командой

sys.dbms_system.set_ev(sid, serial#, 10046, 12, '');

Путь к директории, где появится файл трассировки

select value from v$parameter where name = 'user_dump_dest';

Задать имя для trace файла

alter session set tracefile_identifier = 'mytrace1';

 

Понимание трасировочного файла

Читать дальше про “Трассировка сессии — event 10046” »

Categories: SQL Tags: , , ,

Кто съел весь 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: , , ,

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)) =