DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_BPL_CONC_ADMIN

Source


1 PACKAGE BODY hri_bpl_conc_admin AS
2 /* $Header: hribcnca.pkb 120.5 2006/10/06 12:18:28 jtitmas noship $ */
3 
4 /******************************************************************************/
5 /* Returns 'Yes' for full refresh if the table is empty, and 'No' otherwise   */
6 /******************************************************************************/
7 FUNCTION get_full_refresh_flag( p_table_name        IN VARCHAR2 )
8                 RETURN VARCHAR2 IS
9 
10   l_full_refresh_flag_code   VARCHAR2(30);
11 
12 BEGIN
13 
14   l_full_refresh_flag_code := get_full_refresh_code(p_table_name);
15 
16   RETURN hr_bis.bis_decode_lookup('YES_NO', l_full_refresh_flag_code);
17 
18 END get_full_refresh_flag;
19 
20 /******************************************************************************/
21 /* Returns 'Y' for full refresh if the table is empty, and 'N' otherwise      */
22 /******************************************************************************/
23 FUNCTION get_full_refresh_code( p_table_name        IN VARCHAR2 )
24                 RETURN VARCHAR2 IS
25 
26   l_sql_stmt                 VARCHAR2(500);
27   l_row_exists               NUMBER;
28   l_full_refresh_flag_code   VARCHAR2(30);
29 
30 BEGIN
31 
32   l_sql_stmt := 'SELECT count(*) FROM ' || p_table_name || ' WHERE rownum < 2';
33 
34   EXECUTE IMMEDIATE l_sql_stmt INTO l_row_exists;
35 
36   IF (l_row_exists > 0) THEN
37     l_full_refresh_flag_code := 'N';
38   ELSE
39     l_full_refresh_flag_code := 'Y';
40   END IF;
41 
42   RETURN l_full_refresh_flag_code;
43 
44 END get_full_refresh_code;
45 
46 --
47 -- -----------------------------------------------------------------------------
48 -- This procedure returns the full refresh parameter for the HRI Full Refresh --
49 -- Events Capture Process. If any of the base table for which the process     --
50 -- populates the events queue is not empty then return N else return Y        --
51 -- -----------------------------------------------------------------------------
52 --
53 FUNCTION get_events_full_refresh_flag
54                 RETURN VARCHAR2 IS
55   --
56   l_full_refresh_flag_code   VARCHAR2(30);
57   --
58   CURSOR c_events_full_refresh is
59   SELECT DECODE(NVL(SUM(recs),0),0,'Y','N')
60   FROM  (SELECT 1 recs
61          FROM   hri_cs_suph
62          WHERE  rownum = 1
63          UNION ALL
64          SELECT 1 recs
65          FROM   hri_mb_asgn_events_ct
66          WHERE rownum = 1
67          UNION ALL
68          SELECT 1 recs
69 	 FROM   hri_cl_wkr_sup_status_ct
70          WHERE rownum = 1
71          );
72   --
73 BEGIN
74   --
75   OPEN  c_events_full_refresh;
76   FETCH c_events_full_refresh into l_full_refresh_flag_code;
77   CLOSE c_events_full_refresh;
78   --
79   RETURN hr_bis.bis_decode_lookup('YES_NO', l_full_refresh_flag_code);
80   --
81 END get_events_full_refresh_flag;
82 
83 --
84 -- -----------------------------------------------------------------------------
85 -- Returns HRI global start date
86 -- -----------------------------------------------------------------------------
87 --
88 FUNCTION get_hri_global_start_date
89                 RETURN DATE IS
90   l_return_date   DATE;
91 BEGIN
92 
93   -- Trap profile format exception
94   BEGIN
95     l_return_date := to_date(fnd_profile.value
96                               ('HRI_GLOBAL_START_DATE'), 'MM/DD/YYYY');
97   EXCEPTION WHEN OTHERS THEN
98     null;
99   END;
100 
101   RETURN l_return_date;
102 
103 END get_hri_global_start_date;
104 
105 
106 --
107 -- -----------------------------------------------------------------------------
108 -- Returns request set PK and linked DBI pages for currently
109 -- executing request set
110 -- -----------------------------------------------------------------------------
111 --
112 PROCEDURE get_request_set_details
113    (p_request_set_id   OUT NOCOPY NUMBER,
114     p_application_id   OUT NOCOPY NUMBER,
115     p_refresh_mode     OUT NOCOPY VARCHAR2,
116     p_page_list        OUT NOCOPY page_list_tab_type) IS
117 
118   CURSOR rsg_page_csr(v_request_id  NUMBER) IS
119   SELECT
120    rso.object_name
121   ,rso.object_owner
122   ,rso.object_type
123   ,opt.option_value       refresh_mode
124   ,rset.request_set_id
125   ,rset.application_id
126   FROM
127    fnd_concurrent_requests  fcr
128   ,fnd_request_sets_vl      rset
129   ,bis_request_set_objects  rso
130   ,bis_request_set_options  opt
131   WHERE fcr.request_id = v_request_id
132   AND rso.set_app_id = rset.application_id
133   AND rso.request_set_name = rset.request_set_name
134   AND rset.application_id = to_number(fcr.argument1)
135   AND rset.request_set_id = to_number(fcr.argument2)
136   AND opt.request_set_name = rso.request_set_name
137   AND opt.set_app_id = rso.set_app_id
138   AND opt.option_name = 'REFRESH_MODE';
139 
140   l_index              NUMBER := 0;
141   l_master_request_id  NUMBER;
142   l_empty_page_list    page_list_tab_type;
143 
144 BEGIN
145 
146   -- Get request id for request set
147   l_master_request_id := fnd_global.conc_priority_request;
148 
149   -- If request set id is provided, get the details
150   IF (l_master_request_id IS NOT NULL) THEN
151 
152     -- Exception may be raised if:
153     --   - Process is not run from a request set
154     --   - Request set submission program changes
155     BEGIN
156 
157       -- Loop through pages
158       FOR page_rec IN rsg_page_csr(l_master_request_id) LOOP
159         l_index := l_index + 1;
160         p_page_list(l_index).page_owner := page_rec.object_owner;
161         p_page_list(l_index).page_name  := page_rec.object_name;
162         p_page_list(l_index).page_type  := page_rec.object_type;
163         p_refresh_mode   := page_rec.refresh_mode;
164         p_request_set_id := page_rec.request_set_id;
165         p_application_id := page_rec.application_id;
166       END LOOP;
167 
168     -- If anything goes wrong, return no details
169     EXCEPTION WHEN OTHERS THEN
170       p_refresh_mode   := null;
171       p_request_set_id := to_number(null);
172       p_application_id := to_number(null);
173       p_page_list      := l_empty_page_list;
174     END;
175 
176   END IF;
177 
178 END get_request_set_details;
179 
180 END hri_bpl_conc_admin;