In this Document

  Goal
  Solution
  1: How do you enable trace for an API when executed from a SQL script outside
of Oracle Applications ?
  2: How do you get debug log for an API when executed from a SQL script outside
of Oracle Applications ?
  a) For Inventory APIs
  b) For Bills of Material & Engineering APIs
  c) For Advanced Product Catalog (APC / PIM / EGO) APIs
  References

APPLIES TO:

Oracle Inventory Management - Version 11.5.10.CU2 to 12.1.3 [Release 11.5.10 to 12.1]

Oracle Bills of Material - Version 11.5.10.2 to 12.1.3 [Release 11.5 to 12.1]

Oracle Engineering - Version 11.5.10.2 to 12.1.3 [Release 11.5 to 12.1]

Oracle Product Hub - Version 11.5.10.2 to 12.1.3 [Release 11.5 to 12.1]

Information in this document applies to any platform.

This document includes all versions of 11.5.10 and R12 and later

GOAL

This document addresses the below questions: 



1. How do you enable trace for an API when executed from a SQL script outside of Oracle Applications ? 



2. How to get the debug log for APIs  when executed from a SQL script outside of Oracle Applications ? 



a) Inventory APIs

b) Bills of Material and Engineering APIs 

c) Advanced Product Catalog (APC / EGO/ PIM) APIs



Note: Debug profiles are specific to modules, but,  trace can be enabled for any API by following the steps provided here.

SOLUTION

1: How do you enable trace for an API when executed from a SQL script outside of Oracle Applications ?

-- enable trace

ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';



-- Set the trace file identifier, to locate the file on the server

ALTER SESSION SET TRACEFILE_IDENTIFIER = 'API_TRACE';



-- Execute the API from the SQL script, in the same session.

EXEC <procedure name> ; 



-- Once the API completes execution, disable trace

ALTER SESSION SET EVENTS '10046 trace name context off';



-- Locate the trace file based on the tracefile identifier

SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest'; 



-- Generate the tkprof of the trace file

tkprof <trace_File>.trc <tkprof>.out sys=no explain=apps/<apps pwd>

2: How do you get debug log for an API when executed from a SQL script outside of Oracle Applications ?

a) For Inventory APIs

i. Enable INV Debug profiles at User level for the user who would be running the API.



For example:

INV:Debug Trace = YES

INV:Debug level = 15

INV: Debug File = /tmp/invdbg_TAR.dbg  

For more information, on INV Debug profiles, Please refer to Note 148651.1



ii. Add the below declarations to the sql script calling the API outside of Oracle Applications.

-- Declarations



l_user_id NUMBER := -1;

l_resp_id NUMBER := -1;

l_application_id NUMBER := -1;

l_user_name VARCHAR2(30) := 'MFG';  -- user name

l_resp_name VARCHAR2(30) := 'Inventory'; -- responsibility name

iii. Add the below code before the API is called in the SQL script. This will initialize applications context, and will use the values of the debug profiles set for this user.

-- Get the user_id

SELECT user_id

INTO l_user_id

FROM fnd_user

WHERE user_name = l_user_name;



-- Get the application_id and responsibility_id

SELECT application_id, responsibility_id

INTO l_application_id, l_resp_id

FROM fnd_responsibility_vl

WHERE responsibility_name = l_resp_name;



FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id); -- Mfg / Mfg & Dist Mgr / INV

dbms_output.put_line('Initialized applications context: '|| l_user_id || ' '|| l_resp_id ||' '|| l_application_id );

iv. Now, go ahead and execute the API from the SQL script, this willl create the debug log file with the file name as provided in the profile "INV: Debug File".

You can review step-by-step video here -  Video - Trace
and Debug INV API (2:00)
 

b) For Bills of Material & Engineering APIs

i. Initialize the below parameters to the API:

(...

p_debug => 'Y',

p_output_dir => '/usr/tmp',   -- Directory from utl_file_dir

p_debug_filename => 'bom_api_debug.log'  -- Debug log filename

);

ii. Now run the API script or procedure created, This will create the debug log in the directory as mentioned in the parameters.



For example:

Bom_Bo_Pub.process_bom (p_bo_identifier => 'BOM',

p_api_version_number => 1.0,

p_init_msg_list => TRUE,

p_bom_header_rec => l_bom_header_rec,

p_bom_revision_tbl => l_bom_revision_tbl,

p_bom_component_tbl => l_bom_component_tbl,

p_bom_ref_designator_tbl => l_bom_ref_designator_tbl,

p_bom_sub_component_tbl => l_bom_sub_component_tbl,

x_bom_header_rec => x_bom_header_rec,

x_bom_revision_tbl => x_bom_revision_tbl,

x_bom_component_tbl => x_bom_component_tbl,

x_bom_ref_designator_tbl => x_bom_ref_designator_tbl,

x_bom_sub_component_tbl => x_bom_sub_component_tbl,

x_return_status => l_return_status,

x_msg_count => l_msg_count ,

p_debug => 'Y',

p_output_dir => '/usr/tmp', 

p_debug_filename => 'bom_api_debug.log'

);

You can review step-by-step video here -  Video
Trace and Debug ECO API (2:00) 

c) For Advanced Product Catalog (APC / PIM / EGO) APIs

i. Initialize the below parameters to the API:

(...

p_debug_level => 3   -- 0 - No debug, 3 - finest debug information

);

ii. Now run the API script or procedure created, This will create the debug log in the directory (as in 'utl_file_dir' DB parameter, for ex: /usr/tmp)



For example:

 EGO_USER_ATTRS_DATA_PUB.PROCESS_USER_ATTRS_DATA(

              l_api_version

              , l_object_name

              , l_attributes_row_table

              , l_attributes_data_table

              , l_pk_column_name_value_pairs

              , l_class_code_name_value_pairs

              , l_user_privileges_on_object

              , l_entity_id

              , l_entity_index

              , l_entity_code

              , l_debug_level

              , l_init_error_handler

              , l_write_to_concurrent_log

              , l_init_fnd_msg_list

              , l_log_errors

              , l_add_errors_to_fnd_stack

              , l_commit

              , x_failed_row_id_list

              , x_return_status

              , x_errorcode

              , x_msg_count

              , x_msg_data

          );

How to Enable Trace or Debug for APIs executed as SQL Script Outside of the Applications ?的更多相关文章

  1. Trace、Debug和TraceSource的使用以及日志设计 .

    [-] Trace 和 Debug区别 什么是Listeners 跟踪开关 使用BooleanSwitch开关 使用TraceSwitch开关 使用TraceSource代替Trace和Debug 设 ...

  2. C#学习笔记14——TRACE、DEBUG和TRACESOURCE的使用以及日志设计

    Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空间 System.Diagnostics 包含用于跟踪执行流程的 Trace.Debug 和 ...

  3. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14——Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

  4. Trace和Debug主要用法

    #region 日志记录 //System.Diagnostics.Trace.Listeners.Clear(); //System.Diagnostics.Trace.AutoFlush = tr ...

  5. Oracle Bills of Material and Engineering Application Program Interface (APIs)

    In this Document Goal   Solution   1. Sample Notes for BOM APIs   2. Datatypes used in these APIs   ...

  6. Oracle Inventory Management Application Program Interface ( APIs)

    In this Document   Goal   Solution   References APPLIES TO: Oracle Inventory Management - Version 12 ...

  7. Oracle Inventory Management Application Program Interface ( APIs) (Doc ID 729998.1)

    In this Document Goal Solution References APPLIES TO: Oracle Inventory Management - Version 12.0.0 a ...

  8. 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?

    学习转摘:https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8rman_debug%E5%92 ...

  9. 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?

         在做Support的这些年,我很大的收获是掌握了许多troubleshooting问题的方法和工具,对于每一类问题,都可以大体归类出一些诊断方法.无论问题多么复杂,像扒洋葱一样,一层层去掉无 ...

随机推荐

  1. delphi 线程教学第五节:多个线程同时执行相同的任务

    第五节:多个线程同时执行相同的任务   1.锁   设,有一个房间 X ,X为全局变量,它有两个函数  X.Lock 与 X.UnLock; 有如下代码:   X.Lock;      访问资源 P; ...

  2. C++雾中风景8:Lambda表达式

    上一篇C++的博客是Long Long ago了,前文讲到在看Lambda表达式的内容.笔者首次接触Lambda表达式应该是学习Python语言的时候,当时也不太明白这种表达方式的精髓,后续接触了Sc ...

  3. windows下python3.5使用pip离线安装whl包

    0. 绪论 Windows离线断网环境下安装Python包,配置环境,准备用来生成word模版.姑且记录一下 生产环境 : windows 7 windows10 python 3.5.2 pip 1 ...

  4. MacOS下安装rvm的几点注意

    如果用以下链接无法下载的话: curl -sSL https://get.rvm.io | bash -s stable #或者 curl -L https://rvm.io | bash -s st ...

  5. 六星经典CSAPP-笔记(7)加载与链接(上)

    六星经典CSAPP-笔记(7)加载与链接 1.对象文件(Object File) 1.1 文件类型 对象文件有三种形式: 可重定位对象文件(Relocatable object file):包含二进制 ...

  6. Dynamics CRM2016 关闭错误报告弹框提示

    在之前的版本中错误报告的弹框提示是可以在隐私首选项中设置关闭的,如下图所示 但是在2016中这个设置没了 有人说在右上角的选项中设置,但那个只能是设置个人的无法修改系统级别的.在系统中找了半天还是没有 ...

  7. Android Studio突然不显示logcat日志

    参考文章:http://blog.csdn.net/victor_e_n_01185/article/details/52818809 有时候,AS出现没有log的情况.一般您换了模拟器,或者使用真机 ...

  8. Linux 环境下一些常用的命令(二)

    11. chown命令 "chown"命令就是改变文件拥有者和所在用户组.每个文件都属于一个用户组和一个用户.在你的目录下,使用"ls -l",你就会看到像这样 ...

  9. UIKit视图动画的微扩展

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 好久没写blog了,还不快快写来- ;] 我们知道在UIKit ...

  10. SQLite 表达式(http://www.w3cschool.cc/sqlite/sqlite-expressions.html)

    SQLite 表达式 表达式是一个或多个值.运算符和计算值的SQL函数的组合. SQL 表达式与公式类似,都写在查询语言中.您还可以使用特定的数据集来查询数据库. 语法 假设 SELECT 语句的基本 ...