DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_CTL

Source


1 PACKAGE BODY FND_CTL AS
2 /* $Header: AFSESCTB.pls 115.11.1150.2 2000/01/04 12:07:07 pkm ship $ */
3 
4 PROCEDURE FND_SESS_CTL(oltp_opt_mode IN VARCHAR2,
5                                         conc_opt_mode IN VARCHAR2,
6                                         trace_opt     IN VARCHAR2,
7                                         timestat    IN VARCHAR2,
8                                         logmode    IN VARCHAR2,
9                                         event_stmt   IN VARCHAR2) AS
10 
11 PRAGMA AUTONOMOUS_TRANSACTION ;
12 
13 BEGIN
14    DECLARE
15      cid  INTEGER;
16      ret integer;
17      user_name VARCHAR2(30);
18      event_stmt1 VARCHAR2(200);
19      resp_name VARCHAR2(100);
20      application_short_name VARCHAR2(50);
21      conc_program_id NUMBER ;
22      conc_program_name VARCHAR2(30) ;
23      user_conc_program_name VARCHAR2(240) ;
24      conc_request_id      NUMBER ;
25      concat_var  VARCHAR2(2000);
26      output_conc_request_id varchar2(15);
27      timestamp   VARCHAR2(20);
28      sql_stmt VARCHAR2(2000) := null;
29    BEGIN
30 
31      if trace_opt is not null  then
32         sql_stmt := 'ALTER SESSION SET SQL_TRACE = '|| trace_opt ;
33         EXECUTE IMMEDIATE sql_stmt ;
34      end if;
35      if ((fnd_global.conc_request_id <= 0) and
36          (oltp_opt_mode is not null)) then
37         sql_stmt := 'ALTER SESSION SET OPTIMIZER_MODE = '|| oltp_opt_mode ;
38         EXECUTE IMMEDIATE sql_stmt ;
39      end if;
40      if ((fnd_global.conc_request_id > 0) and
41          (conc_opt_mode is not null)) then
42         sql_stmt := 'ALTER SESSION SET OPTIMIZER_MODE = '|| conc_opt_mode ;
43         EXECUTE IMMEDIATE sql_stmt ;
44      end if;
45      if timestat is not null  then
46         sql_stmt := 'ALTER SESSION SET TIMED_STATISTICS = '|| timestat ;
47         EXECUTE IMMEDIATE sql_stmt ;
48      end if;
49      if event_stmt is not null  then
50         EXECUTE IMMEDIATE event_stmt ;
51      end if;
52      --get all the env stuff here  (if trace_opt is true )
53      if ( upper(trace_opt) = 'TRUE' or upper(logmode) = 'LOG' ) then
54          user_name       := substr(replace(fnd_global.user_name,'''',' '),1,30);
55          conc_program_id := fnd_global.conc_program_id;
56          resp_name       := substr(replace(fnd_global.resp_name,'''',' '),1,100);
57          application_short_name := substr(replace(fnd_global.application_short_name,'''',' '),1,50);
58          conc_request_id := fnd_global.conc_request_id;
59          if fnd_global.conc_request_id > 0 then
60             BEGIN
61                SELECT substr(replace(user_concurrent_program_name,'''',' '),1,240),
62                   substr(concurrent_program_name,1,30)
63                INTO   user_conc_program_name, conc_program_name
64                FROM   FND_CONCURRENT_PROGRAMS_VL
65                WHERE  concurrent_program_id = conc_program_id
66                AND    APPLICATION_ID        = fnd_global.prog_appl_id;
67                EXCEPTION
68                WHEN OTHERS THEN
69                          NULL;
70               END;
71               output_conc_request_id := to_char(conc_request_id);
72           else
73               output_conc_request_id := 'FORMS';
74           end if;
75           SELECT TO_CHAR(SYSDATE,'DD-MON-YY:HH24:MI:SS')
76           INTO   timestamp
77           FROM SYS.DUAL;
78      end if;
79      if ( upper(trace_opt) = 'TRUE' ) then
80           concat_var :='SELECT ' ||  ''''||
81                   'TRACE_USER_DETAILS: '||
82                   'TIMESTAMP='||
83                   nvl(timestamp,' ')||': '||
84                   'USER_NAME='||
85                   nvl(user_name,' ')||': '||
86                   'CONC_REQUEST_ID='||
87                   nvl(output_conc_request_id,' ')||': '||
88                   'OLTP_OPT_MODE='||
89                   nvl(oltp_opt_mode,' ')||': '||
90                   'CONC_OPT_MODE='||
91                   nvl(conc_opt_mode,' ')||': '||
92                   'CONC_PROG_EXE='||
93                   nvl(conc_program_name,' ')||': '||
94                   'CONC_PROG_NAME='||
95                   nvl(user_conc_program_name,' ')||': '||
96                   'RESPONSIBILITY='||
97                   nvl(resp_name,' ')||': '||
98                   'APPL_NAME='||
99                   nvl(application_short_name,' ')||
100                   ''''|| ' FROM DUAL' ;
101             --dbms_output.put_line(substr(concat_var,1,250));
102             EXECUTE IMMEDIATE concat_var ;
103      end if;
104 
105      /* LOG them in a table if needed */
106       if (upper(logmode) = 'LOG' )  then
107          BEGIN
108          INSERT INTO FND_TRACE_LOG VALUES (
109             user_name,
110             sysdate,
111             conc_request_id,
112             oltp_opt_mode,
113             conc_opt_mode,
114             conc_program_name,
115             user_conc_program_name,
116             resp_name,
117             application_short_name
118          );
119          EXCEPTION
120            WHEN OTHERS THEN NULL;
121          END;
122          COMMIT;
123      end if;   /* END of LOGGING */
124 
125 
126 
127    END;
128 END FND_SESS_CTL;
129 END FND_CTL ;