DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_OLTP_CONC_PARAM

Source


1 PACKAGE BODY hri_oltp_conc_param AS
2 /* $Header: hriocprm.pkb 120.2 2005/11/11 03:06:10 jtitmas noship $ */
3 
4 -- Sets the full refresh value for a concurrent process
5 FUNCTION get_full_refresh_value(p_process_table_name    IN VARCHAR2)
6           RETURN VARCHAR2 IS
7 
8   l_page_list        hri_bpl_conc_admin.page_list_tab_type;
9   l_refresh_mode     VARCHAR2(240);
10   l_request_set_id   NUMBER;
11   l_application_id   NUMBER;
12   l_full_refresh     VARCHAR2(30);
13   l_table_is_empty   VARCHAR2(30);
14 
15 BEGIN
16 
17   -- Get request set information
18   hri_bpl_conc_admin.get_request_set_details
19    (p_request_set_id => l_request_set_id,
20     p_application_id => l_application_id,
21     p_refresh_mode   => l_refresh_mode,
22     p_page_list      => l_page_list);
23 
24   -- If request set is incremental then do not full refresh
25   IF (l_refresh_mode = 'INCR') THEN
26 
27     l_full_refresh := 'N';
28 
29   -- Otherwise check:
30   --    1) Profile options - force full refresh / force shared HR
31   --    2) Whether table has data
32   --    3) Whether table is "owned" by a page in the request set
33   ELSE
34 
35     -- If force full refresh profile is set
36     -- or shared hr mode is detected
37     -- return full refresh
38     IF (fnd_profile.value('HRI_DBI_FORCE_FULL_REFRESH') = 'Y' OR
39         hr_general.chk_product_installed(800) = 'FALSE' OR
40         fnd_profile.value('HRI_DBI_FORCE_SHARED_HR') = 'Y') THEN
41 
42       l_full_refresh := 'Y';
43 
44     ELSE
45 
46       -- Check whether the table is empty
47       l_table_is_empty := hri_bpl_conc_admin.get_full_refresh_code
48                            (p_table_name => p_process_table_name);
49 
50       -- If the table is empty then full refresh
51       IF (l_table_is_empty = 'Y') THEN
52 
53         l_full_refresh := 'Y';
54 
55       ELSE
56 
57         -- If the table is owned by a DBI page associated with the request set
58         -- then full refresh otherwise incremental
59         IF (hri_mtdt_conc_request.is_table_owned_by_page
60              (p_page_list  => l_page_list,
61               p_table_name => p_process_table_name) = 'N') THEN
62           l_full_refresh := 'N';
63         ELSE
64           l_full_refresh := 'Y';
65         END IF;
66 
67       END IF; -- Table is empty
68 
69     END IF; -- Profile options
70 
71   END IF; -- Refresh mode
72 
73   RETURN l_full_refresh;
74 
75 END get_full_refresh_value;
76 
77 -- Sets the refresh from date for a concurrent process
78 FUNCTION get_full_refresh_from_value(p_process_table_name    IN VARCHAR2)
79           RETURN VARCHAR2 IS
80 
81   l_hri_start_date   DATE;
82   l_dbi_start_date   DATE;
83 
84 BEGIN
85 
86   -- Check the DBI start date
87   l_dbi_start_date := hri_bpl_parameter.get_bis_global_start_date;
88 
89   -- If the program is also a non-dbi process check the HRI start date
90   IF (hri_mtdt_conc_request.is_core_hri_process
91        (p_table_name => p_process_table_name) = 'Y') THEN
92 
93     l_hri_start_date := hri_bpl_conc_admin.get_hri_global_start_date;
94 
95     -- Pick the earlier date
96     IF (l_hri_start_date < l_dbi_start_date) THEN
97       l_dbi_start_date := l_hri_start_date;
98     END IF;
99 
100   END IF;
101 
102   -- Return the date as a string
103   RETURN fnd_date.date_to_canonical(l_dbi_start_date);
104 
105 END get_full_refresh_from_value;
106 
107 -- Generic function to return a parameter value
108 FUNCTION get_parameter_value(p_parameter_name      IN VARCHAR2,
109                              p_process_table_name  IN VARCHAR2)
110           RETURN VARCHAR2 IS
111 
112   l_parameter_value  VARCHAR2(240);
113 
114 BEGIN
115 
116   -- Call appropriate subfunction
117   IF (p_parameter_name = 'FULL_REFRESH') THEN
118     l_parameter_value := get_full_refresh_value
119                           (p_process_table_name => p_process_table_name);
120   ELSIF (p_parameter_name = 'FULL_REFRESH_FROM_DATE') THEN
121     l_parameter_value := get_full_refresh_from_value
122                           (p_process_table_name => p_process_table_name);
123   END IF;
124 
125   RETURN l_parameter_value;
126 
127 END get_parameter_value;
128 
129 -- Generic function to return a parameter value
130 FUNCTION get_date_parameter_value(p_parameter_name      IN VARCHAR2,
131                                   p_process_table_name  IN VARCHAR2)
132           RETURN DATE IS
133 
134   l_date_string   VARCHAR2(240);
135 
136 BEGIN
137 
138   l_date_string := get_parameter_value
139                     (p_parameter_name => p_parameter_name,
140                      p_process_table_name => p_process_table_name);
141 
142   RETURN fnd_date.canonical_to_date(l_date_string);
143 
144 END get_date_parameter_value;
145 
146 END hri_oltp_conc_param;