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;