[Home] [Help]
PACKAGE BODY: APPS.GCS_CONS_ENG_UTILITY_PKG
Source
1 PACKAGE BODY GCS_CONS_ENG_UTILITY_PKG as
2 /* $Header: gcs_eng_utilb.pls 120.15 2007/09/27 21:47:06 rguerrer noship $ */
3
4 g_api VARCHAR2(80) := 'gcs.plsql.GCS_CONS_ENG_UTILITY_PKG';
5
6 PROCEDURE get_cons_entity_wf_info (itemtype IN VARCHAR2,
7 itemkey IN VARCHAR2,
8 cons_entity_wf_info IN OUT NOCOPY r_cons_entity_wf_info)
9
10 IS
11
12 BEGIN
13
14 cons_entity_wf_info.consolidation_hierarchy := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONS_HIERARCHY', FALSE);
15 cons_entity_wf_info.consolidation_entity := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONS_ENTITY', FALSE);
16 cons_entity_wf_info.run_identifier := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'RUN_IDENTIFIER', FALSE);
17 cons_entity_wf_info.cal_period_id := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'CAL_PERIOD', FALSE);
18 cons_entity_wf_info.cal_period_end_date := TO_DATE(WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'CAL_PERIOD_END_DATE', FALSE), 'DD-MM-RR');
19 cons_entity_wf_info.balance_type_code := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'BALANCE_TYPE_CODE', FALSE);
20 cons_entity_wf_info.run_detail_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'RUN_DETAIL_ID', FALSE);
21 cons_entity_wf_info.process_method := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'PROCESS_METHOD', FALSE);
22 cons_entity_wf_info.num_of_categories := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'NUM_OF_CATEGORIES', FALSE);
23 cons_entity_wf_info.curr_category_num := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
24 cons_entity_wf_info.prior_run_identifier := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'PRIOR_RUN_NAME', FALSE);
25 cons_entity_wf_info.xlate_entry_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'XLATE_ENTRY_ID', FALSE);
26 cons_entity_wf_info.request_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONC_REQUEST_ID', FALSE);
27 --Bugfix 5017120: Added support for additional data types
28 cons_entity_wf_info.source_dataset_code := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'SOURCE_DATASET_CODE', FALSE);
29 cons_entity_wf_info.hierarchy_dataset_code := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'HIERARCHY_DATASET_CODE', FALSE);
30 -- Bugfix 5569522: Added for business process kick-off support
31 cons_entity_wf_info.analysis_cycle_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'ANALYSIS_CYCLE_ID', FALSE);
32 END get_cons_entity_wf_info;
33
34 PROCEDURE get_oper_entity_wf_info (itemtype IN VARCHAR2,
35 itemkey IN VARCHAR2,
36 cons_entity_wf_info IN OUT NOCOPY r_cons_entity_wf_info,
37 oper_entity_wf_info IN OUT NOCOPY r_oper_entity_wf_info)
38
39 IS
40
41 BEGIN
42 oper_entity_wf_info.parent_workflow_key := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'PARENT_WORKFLOW_KEY', FALSE);
43 oper_entity_wf_info.operating_entity := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'OPER_ENTITY', FALSE);
44 oper_entity_wf_info.cons_relationship_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONS_RELATIONSHIP_ID', FALSE);
45 oper_entity_wf_info.run_detail_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'RUN_DETAIL_ID', FALSE);
46 oper_entity_wf_info.translation_required := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'TRANSLATION_REQUIRED', FALSE);
47 oper_entity_wf_info.xlate_entry_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'XLATE_ENTRY_ID', FALSE);
48
49 get_cons_entity_wf_info('GCSENGNE', oper_entity_wf_info.parent_workflow_key, cons_entity_wf_info);
50 END get_oper_entity_wf_info;
51
52 PROCEDURE update_entry_headers(p_run_name IN VARCHAR2,
53 p_entry_id IN NUMBER)
54
55 IS PRAGMA AUTONOMOUS_TRANSACTION;
56
57 BEGIN
58 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
59 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.UPDATE_ENTRY_HEADERS.begin', '<<Enter>>');
60 END IF;
61
62 UPDATE gcs_entry_headers
63 SET processed_run_name = p_run_name,
64 disabled_flag = 'Y',
65 last_update_date = sysdate,
66 last_updated_by = FND_GLOBAL.USER_ID,
67 last_update_login = FND_GLOBAL.LOGIN_ID
68 WHERE entry_id = p_entry_id;
69
70 COMMIT;
71
72 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
73 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.UPDATE_ENTRY_HEADERS.end', '<<Exit>>');
74 END IF;
75 END update_entry_headers;
76
77 PROCEDURE submit_xml_ntf_program(p_run_name IN VARCHAR2,
78 p_cons_entity_id IN NUMBER,
79 p_category_code IN VARCHAR2,
80 p_child_entity_id IN NUMBER DEFAULT NULL,
81 p_run_detail_id IN NUMBER DEFAULT NULL)
82 IS PRAGMA AUTONOMOUS_TRANSACTION;
83
84 l_request_id NUMBER(15);
85
86 BEGIN
87 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
88 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.SUBMIT_XML_NTF_PROGRAM.begin', '<<Enter>>');
89 END IF;
90
91 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
92 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.SUBMIT_XML_NTF_PROGRAM', 'Run Name : ' || p_run_name);
93 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.SUBMIT_XML_NTF_PROGRAM', 'Consoliation Entity : ' || p_cons_entity_id);
94 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.SUBMIT_XML_NTF_PROGRAM', 'Category : ' || p_category_code);
95 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.SUBMIT_XML_NTF_PROGRAM', 'Child Entity : ' || p_child_entity_id);
96 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.SUBMIT_XML_NTF_PROGRAM', 'Run Detail ID : ' || p_run_detail_id);
97 END IF;
98
99 fnd_file.put_line(fnd_file.log, 'Within submit_xml_ntf_program');
100
101 l_request_id := fnd_request.submit_request(
102 application => 'GCS',
103 program => 'FCH_XML_NTF_UTILITY',
104 sub_request => FALSE,
105 argument1 => 'CONS_PROCESS',
106 argument2 => p_run_name,
107 argument3 => p_cons_entity_id,
108 argument4 => p_category_code,
109 argument5 => p_child_entity_id,
110 argument6 => p_run_detail_id);
111
112 fnd_file.put_line(fnd_file.log, 'Submitted request id : ' || l_request_id);
113
114
115 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
116 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.SUBMIT_XML_NTF_PROGRAM.end', '<<Exit>>');
117 END IF;
118
119 COMMIT;
120
121 END submit_xml_ntf_program;
122
123 PROCEDURE execute_module (module_code IN VARCHAR2,
124 p_parameter_list IN OUT NOCOPY gcs_cons_eng_utility_pkg.r_module_parameters,
125 p_item_key IN VARCHAR2)
126
127 IS PRAGMA AUTONOMOUS_TRANSACTION;
128
129 l_entry_id NUMBER(15);
130 l_stat_entry_id NUMBER(15);
131
132 BEGIN
133
134 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
135 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXECUTE_MODULE.begin', '<<Enter for item key : ' || p_item_key || '>>');
136 END IF;
137 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
138 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Module Code : ' || module_code);
139 END IF;
140
141 IF (module_code = 'TRANSLATION') THEN
142 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
143 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Entry ID : ' || p_parameter_list.entry_id);
144 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Relationship : ' || p_parameter_list.cons_relationship_id);
145 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Xlate Mode : ' || p_parameter_list.xlate_mode);
146 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
147 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Xlate Entry ID : ' || p_parameter_list.xlate_entry_id);
148 END IF;
149
150 BEGIN
151 gcs_translation_pkg.translate(p_parameter_list.errbuf,
152 p_parameter_list.retcode,
153 p_parameter_list.cal_period_id,
154 p_parameter_list.cons_relationship_id,
155 p_parameter_list.balance_type_code,
156 p_parameter_list.hierarchy_dataset_code,
157 p_parameter_list.xlate_entry_id);
158 EXCEPTION
159 WHEN OTHERS THEN
160 p_parameter_list.errbuf := SQLERRM;
161 END;
162
163 --Bugfix 4205986 : Set the Entry ID to Null if an error occurred during translation
164 IF (p_parameter_list.errbuf IS NOT NULL) THEN
165 p_parameter_list.xlate_entry_id := NULL;
166 END IF;
167
168 gcs_cons_eng_run_dtls_pkg.update_entry_headers(
169 p_run_detail_id => p_parameter_list.run_detail_id,
170 p_entry_id => p_parameter_list.xlate_entry_id,
171 p_request_error_code => NVL(p_parameter_list.errbuf, 'COMPLETED'),
172 p_bp_request_error_code => NVL(p_parameter_list.errbuf, 'COMPLETED'));
173
174 ELSIF (module_code = 'DATAPREPARATION') THEN
175
176 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
177 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy : ' || p_parameter_list.hierarchy_id);
178 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Entity : ' || p_parameter_list.child_entity_id);
179 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cal Period : ' || p_parameter_list.cal_period_id);
180 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Detail : ' || p_parameter_list.run_detail_id);
181 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cons Relationship : ' || p_parameter_list.cons_relationship_id);
182 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
183 END IF;
184
185 gcs_data_prep_pkg.gcs_main_data_prep (
186 x_errbuf => p_parameter_list.errbuf,
187 x_retcode => p_parameter_list.retcode,
188 p_hierarchy_id => p_parameter_list.hierarchy_id,
189 p_entity_id => p_parameter_list.child_entity_id,
190 p_target_cal_period_id => p_parameter_list.cal_period_id,
191 p_run_detail_id => p_parameter_list.run_detail_id,
192 p_cons_rel_id => p_parameter_list.cons_relationship_id,
193 p_balance_type_code => p_parameter_list.balance_type_code,
194 p_source_dataset_code => p_parameter_list.source_dataset_code);
195
196 --Bugfix 3666700: Removed call to insert intercompany transactions into temp table
197 --Bugfix 4307627: Removed call to update status for data preparation
198
199 ELSIF (module_code = 'BALANCES_PROCESSOR') THEN
200 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
201 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Name : ' || p_parameter_list.run_name);
202 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cal Period ID : ' || p_parameter_list.cal_period_id);
203 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Category Code : ' || p_parameter_list.category_code);
204 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy Id : ' || p_parameter_list.hierarchy_id);
205 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
206 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Consolidation Entity ID : ' || p_parameter_list.cons_entity_id);
207 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Child Entity ID : ' || p_parameter_list.child_entity_id);
208 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'BP Undo Prior : ' || p_parameter_list.bp_undo_prior);
209 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Detail ID : ' || p_parameter_list.run_detail_id);
210 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'BP Post Xlate : ' || p_parameter_list.bp_post_xlate);
211 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Entry ID : ' || p_parameter_list.entry_id);
212 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'BP Mode : ' || p_parameter_list.bp_mode);
213 END IF;
214
215 gcs_dyn_fem_posting_pkg.gcs_fem_post(
216 errbuf => p_parameter_list.errbuf,
217 retcode => p_parameter_list.retcode,
218 p_run_name => p_parameter_list.run_name,
219 p_cal_period_id => p_parameter_list.cal_period_id,
220 p_category_code => p_parameter_list.category_code,
221 p_hierarchy_id => p_parameter_list.hierarchy_id,
222 p_balance_type_code => p_parameter_list.balance_type_code,
223 p_cons_entity_id => p_parameter_list.cons_entity_id,
224 p_child_entity_id => p_parameter_list.child_entity_id,
225 p_undo => p_parameter_list.bp_undo_prior,
226 p_run_detail_id => p_parameter_list.run_detail_id,
227 p_xlate => p_parameter_list.bp_post_xlate,
228 p_entry_id => p_parameter_list.entry_id,
229 p_mode => p_parameter_list.bp_mode,
230 p_hier_dataset_code => p_parameter_list.hierarchy_dataset_code);
231 ELSIF (module_code = 'AGGREGATION') THEN
232
233 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
234 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy : ' || p_parameter_list.hierarchy_id);
235 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Entity : ' || p_parameter_list.cons_entity_id);
236 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cal Period : ' || p_parameter_list.cal_period_id);
237 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Detail : ' || p_parameter_list.run_detail_id);
238 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cons Relationship : ' || p_parameter_list.cons_relationship_id);
239 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
240 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'End Date : ' || p_parameter_list.period_end_date);
241 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Stat Required : ' || p_parameter_list.stat_required);
242 END IF;
243
244 gcs_aggregation_pkg.aggregate( p_run_detail_id => p_parameter_list.run_detail_id,
245 p_hierarchy_id => p_parameter_list.hierarchy_id,
246 p_relationship_id => p_parameter_list.cons_relationship_id,
247 p_cons_entity_id => p_parameter_list.cons_entity_id,
248 p_cal_period_id => p_parameter_list.cal_period_id,
249 p_period_end_date => p_parameter_list.period_end_date,
250 p_balance_type_code => p_parameter_list.balance_type_code,
251 p_stat_required => p_parameter_list.stat_required,
252 p_errbuf => p_parameter_list.errbuf,
253 p_retcode => p_parameter_list.retcode,
254 p_hier_dataset_code => p_parameter_list.hierarchy_dataset_code);
255
256 gcs_cons_eng_run_dtls_pkg.update_entry_headers(
257 p_run_detail_id => p_parameter_list.run_detail_id,
258 p_request_error_code => NVL(p_parameter_list.errbuf, 'COMPLETED'),
259 p_bp_request_error_code => NVL(p_parameter_list.errbuf, 'COMPLETED'));
260
261 ELSIF (module_code = 'INTERCOMPANY') THEN
262
263 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
264 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy : ' || p_parameter_list.hierarchy_id);
265 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Entity : ' || p_parameter_list.child_entity_id);
266 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Cal Period : ' || p_parameter_list.cal_period_id);
267 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Intercompany Mode : ' || p_parameter_list.intercompany_mode);
268 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Currency Code : ' || p_parameter_list.currency_code);
269 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Identifier : ' || p_parameter_list.run_name);
270 END IF;
271
272
273 gcs_interco_processing_pkg.interco_process_main
274 (
275 p_hierarchy_id => p_parameter_list.hierarchy_id,
276 p_cal_period_id => p_parameter_list.cal_period_id,
277 p_balance_type => p_parameter_list.balance_type_code,
278 p_entity_id => p_parameter_list.child_entity_id,
279 p_elim_mode => p_parameter_list.intercompany_mode,
280 p_currency_code => p_parameter_list.currency_code,
281 p_run_name => p_parameter_list.run_name,
282 p_translation_required => p_parameter_list.bp_post_xlate,
283 x_errbuf => p_parameter_list.errbuf,
284 x_retcode => p_parameter_list.retcode);
285
286 ELSIF (module_code = 'RULES_PROCESSOR') THEN
287
288 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
289 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Event Category : ' || p_parameter_list.rp_parameters.eventCategory);
290 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Data Set Code : ' || p_parameter_list.rp_parameters.datasetCode);
291 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Parent Entity : ' || p_parameter_list.rp_parameters.parentEntity);
292 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Child Entity : ' || p_parameter_list.rp_parameters.childEntity);
293 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Elim Entity : ' || p_parameter_list.rp_parameters.elimsEntity);
294 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Currency : ' || p_parameter_list.rp_parameters.currencyCode);
295 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Event Type : ' || p_parameter_list.rp_parameters.eventType);
296 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Rule Id : ' || p_parameter_list.elim_rule_id);
297 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Relationship : ' || p_parameter_list.rp_parameters.relationship);
298 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'To Percent : ' || p_parameter_list.rp_rule_data.toPercent);
299 END IF;
300
301 p_parameter_list.retcode := gcs_rules_processor.process_rule(
302 p_rule_id => p_parameter_list.elim_rule_id,
303 p_stat_flag => 'N',
304 p_context => p_parameter_list.rp_parameters,
305 p_rule_data => p_parameter_list.rp_rule_data);
306
307 --Bugfix 3920448 : Remove update of run details for fules processor
308
309 ELSIF (module_code = 'PERIOD_INITIALIZATION') THEN
310
311 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
312 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Name : ' || p_parameter_list.run_name);
313 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy : ' || p_parameter_list.hierarchy_id);
314 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Child Entity : ' || p_parameter_list.child_entity_id);
315 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Calendar Period : ' || p_parameter_list.cal_period_id);
316 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
317 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Relationship Id : ' || p_parameter_list.cons_relationship_id);
318 END IF;
319
320 gcs_period_init_pkg.create_period_init_entries(
321 p_errbuf => p_parameter_list.errbuf,
322 p_retcode => p_parameter_list.retcode,
323 p_run_name => p_parameter_list.run_name,
324 p_hierarchy_id => p_parameter_list.hierarchy_id,
325 p_entity_id => p_parameter_list.child_entity_id,
326 p_cal_period_id => p_parameter_list.cal_period_id,
327 p_balance_type_code => p_parameter_list.balance_type_code,
328 p_relationship_id => p_parameter_list.cons_relationship_id,
329 p_cons_entity_id => p_parameter_list.cons_entity_id,
330 p_translation_required => p_parameter_list.bp_post_xlate
331 );
332 ELSIF (module_code = 'UNDO_ELIMINATIONS') THEN
333 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
334 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Run Name : ' || p_parameter_list.run_name);
335 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Hierarchy : ' || p_parameter_list.hierarchy_id);
336 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Calendar Period : ' || p_parameter_list.cal_period_id);
337 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Balance Type Code : ' || p_parameter_list.balance_type_code);
338 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Undo Entity Type : ' || p_parameter_list.undo_entity_type);
339 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXECUTE_MODULE', 'Undo Entity ID : ' || p_parameter_list.undo_entity_id);
340
341 END IF;
342 gcs_dyn_fem_posting_pkg.gcs_fem_delete(
343 errbuf => p_parameter_list.errbuf,
344 retcode => p_parameter_list.retcode,
345 p_cal_period_id => p_parameter_list.cal_period_id,
346 p_hierarchy_id => p_parameter_list.hierarchy_id,
347 p_balance_type_code => p_parameter_list.balance_type_code,
348 p_entity_type => p_parameter_list.undo_entity_type,
349 p_entity_id => p_parameter_list.undo_entity_id,
350 p_hier_dataset_code => p_parameter_list.hierarchy_dataset_code);
351
352 END IF;
353
354 COMMIT;
355
356 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
357 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXECUTE_MODULE.end', '<<Exit for itemkey : ' || p_item_key || '>>');
358 END IF;
359
360 END execute_module;
361
362 PROCEDURE balances_processor ( itemtype IN VARCHAR2,
363 itemkey IN VARCHAR2,
364 actid IN NUMBER,
365 funcmode IN varchar2,
366 result IN OUT NOCOPY varchar2) IS
367
368 cons_entity_wf_info r_cons_entity_wf_info;
369 oper_entity_wf_info r_oper_entity_wf_info;
370 l_category_code VARCHAR2(30);
371 x_errbuf VARCHAR2(2000);
372 x_retcode VARCHAR2(30);
373 l_child_entity_id NUMBER(15);
374 l_undo_flag VARCHAR2(1) := 'N';
375 l_run_detail_id NUMBER(15);
376 l_mode VARCHAR2(30) := 'I';
377 l_curr_category_num NUMBER(15);
378 l_rows_to_process VARCHAR2(1) := 'Y';
379 l_xlate_flag VARCHAR2(1) := 'N';
380 l_entry_id NUMBER(15);
381 l_parameter_list gcs_cons_eng_utility_pkg.r_module_parameters;
382
383 BEGIN
384 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
385 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.BALANCES_PROCESSOR.begin', '<<Enter for itemkey : ' || itemkey || '>>');
386 END IF;
387
388 l_parameter_list.category_code := WF_ENGINE.GetActivityAttrText(itemtype, itemkey, actid, 'CATEGORY_CODE', FALSE);
389 l_parameter_list.bp_post_xlate := 'N';
390 l_parameter_list.bp_mode := 'I';
391
392 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
393 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.BALANCES_PROCESSOR', 'Category Code : ' || l_parameter_list.category_code);
394 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.BALANCES_PROCESSOR', 'Post Xlate : ' || l_parameter_list.bp_post_xlate);
395 END IF;
396
397 IF (itemtype = 'GCSOPRWF') THEN
398
399 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
400 itemkey,
401 cons_entity_wf_info,
402 oper_entity_wf_info);
403
404 IF (cons_entity_wf_info.prior_run_identifier <> 'NO_PRIOR_RUN') THEN
405 l_parameter_list.bp_undo_prior := 'Y';
406 END IF;
407
408 IF (l_parameter_list.category_code = 'DATAPREPARATION') THEN
409 l_parameter_list.run_detail_id := oper_entity_wf_info.run_detail_id;
410 ELSIF (l_parameter_list.category_code = 'INCREMENTAL_DATAPREPARATION') THEN
411 l_parameter_list.run_detail_id := oper_entity_wf_info.run_detail_id;
412 l_parameter_list.bp_mode := 'D';
413 l_parameter_list.bp_undo_prior := 'N';
414 l_parameter_list.category_code := 'DATAPREPARATION';
415 ELSIF (l_parameter_list.category_code = 'XLATE_DATAPREPARATION') THEN
416 l_parameter_list.category_code := 'TRANSLATION';
417 l_parameter_list.entry_id := oper_entity_wf_info.xlate_entry_id;
418 ELSIF (l_parameter_list.category_code = 'ADJUSTMENT') THEN
419 l_curr_category_num := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
420 l_parameter_list.child_entity_id := oper_entity_wf_info.operating_entity;
421 l_parameter_list.category_code := gcs_categories_pkg.g_oper_category_info(l_curr_category_num).category_code;
422 l_parameter_list.bp_undo_prior := 'N';
423
424 SELECT DECODE(COUNT(*), 0, 'N', 'Y')
425 INTO l_rows_to_process
426 FROM gcs_cons_eng_run_dtls
427 WHERE consolidation_entity_id = cons_entity_wf_info.consolidation_entity
428 AND run_name = cons_entity_wf_info.run_identifier
429 AND child_entity_id = oper_entity_wf_info.operating_entity
430 AND category_code = l_parameter_list.category_code;
431 END IF;
432
433 ELSIF (itemtype = 'GCSENGNE') THEN
434
435 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info (itemtype,
436 itemkey,
437 cons_entity_wf_info);
438
439 IF (cons_entity_wf_info.prior_run_identifier <> 'NO_PRIOR_RUN') THEN
440 l_parameter_list.bp_undo_prior := 'Y';
441 END IF;
442
443 IF (l_parameter_list.category_code = 'AGGREGATION') THEN
444
445 l_parameter_list.run_detail_id := cons_entity_wf_info.run_detail_id;
446
447 ELSIF (l_parameter_list.category_code = 'XLATE_AGGREGATE') THEN
448
449 l_parameter_list.category_code := 'TRANSLATION';
450 l_parameter_list.entry_id := cons_entity_wf_info.xlate_entry_id;
451
452 ELSIF (l_parameter_list.category_code = 'ADJUSTMENT') THEN
453
454 l_curr_category_num := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
455 l_parameter_list.category_code := gcs_categories_pkg.g_cons_category_info(l_curr_category_num).category_code;
456 l_parameter_list.bp_undo_prior := 'N';
457
458 SELECT DECODE(COUNT(*), 0, 'N', 'Y')
459 INTO l_rows_to_process
460 FROM gcs_cons_eng_run_dtls
461 WHERE consolidation_entity_id = cons_entity_wf_info.consolidation_entity
462 AND run_name = cons_entity_wf_info.run_identifier
463 AND child_entity_id IS NOT NULL
464 AND category_code = l_parameter_list.category_code;
465
466 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
467 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.BALANCES_PROCESSOR', 'Consolidation Rows to Process : ' || l_rows_to_process);
468 END IF;
469
470 END IF;
471
472 END IF;
473
474 l_parameter_list.run_name := cons_entity_wf_info.run_identifier;
475 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
476 l_parameter_list.hierarchy_id := cons_entity_wf_info.consolidation_hierarchy;
477 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
478 l_parameter_list.cons_entity_id := cons_entity_wf_info.consolidation_entity;
479 --Bugfix 5039565: Passing hierarchy dataset code
480 l_parameter_list.hierarchy_dataset_code := cons_entity_wf_info.hierarchy_dataset_code;
481
482 IF (l_rows_to_process = 'Y') THEN
483 execute_module('BALANCES_PROCESSOR', l_parameter_list, itemkey);
484 END IF;
485
486 result := 'COMPLETE';
487
488 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
489 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.BALANCES_PROCESSOR.end', '<<Exit for itemkey : ' || itemkey || '>>');
490 END IF;
491
492 END balances_processor;
493
494 PROCEDURE check_adj_required ( itemtype IN VARCHAR2,
495 itemkey IN VARCHAR2,
496 actid IN NUMBER,
497 funcmode IN varchar2,
498 result IN OUT NOCOPY varchar2) IS
499
500
501
502 l_categories_exist VARCHAR2(1) := 'N';
503 l_category_type VARCHAR2(30) := NULL;
504 cons_entity_wf_info r_cons_entity_wf_info;
505 oper_entity_wf_info r_oper_entity_wf_info;
506 l_category_count NUMBER(15);
507 l_change_in_data VARCHAR2(1);
508 l_child_entity_id NUMBER(15);
509 l_parameter_list gcs_cons_eng_utility_pkg.r_module_parameters;
510 BEGIN
511
512 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
513 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_ADJ_REQUIRED.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
514 END IF;
515
516
517 IF (itemtype = 'GCSOPRWF') THEN
518 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
519 itemkey,
520 cons_entity_wf_info,
521 oper_entity_wf_info);
522 l_category_count := gcs_categories_pkg.g_oper_category_info.COUNT;
523 l_child_entity_id := oper_entity_wf_info.operating_entity;
524 l_parameter_list.undo_entity_id := l_child_entity_id;
525 l_parameter_list.undo_entity_type := 'O';
526
527 ELSE
528 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
529 itemkey,
530 cons_entity_wf_info);
531 l_category_count := gcs_categories_pkg.g_cons_category_info.COUNT;
532 l_child_entity_id := cons_entity_wf_info.consolidation_entity;
533 l_parameter_list.undo_entity_id := cons_entity_wf_info.consolidation_entity;
534 l_parameter_list.undo_entity_type := 'E';
535 END IF;
536
537 result := 'COMPLETE:F';
538
539 WF_ENGINE.SetItemAttrNumber(itemtype, itemkey, 'NUM_OF_CATEGORIES', l_category_count);
540 WF_ENGINE.SetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', 0);
541
542 --Initialize Workflow Attributes
543 IF (l_category_count > 0) THEN
544 IF ((cons_entity_wf_info.prior_run_identifier <> 'NO_PRIOR_RUN') AND (cons_entity_wf_info.process_method = 'INCREMENTAL')) THEN
545 BEGIN
546 -- Check if any impact occurred
547 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
548 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_ADJ_REQUIRED', '<<Checking if any impact occurred>');
549 END IF;
550
551 IF (itemtype = 'GCSOPRWF') THEN
552 SELECT 'N'
553 INTO l_change_in_data
554 FROM gcs_cons_impact_analyses
555 WHERE run_name = cons_entity_wf_info.prior_run_identifier
556 AND consolidation_entity_id = cons_entity_wf_info.consolidation_entity
557 AND child_entity_id = oper_entity_wf_info.operating_entity
558 AND rownum < 2;
559 ELSE
560 SELECT 'N'
561 INTO l_change_in_data
562 FROM gcs_cons_eng_runs
563 WHERE run_name = cons_entity_wf_info.prior_run_identifier
564 AND run_entity_id = cons_entity_wf_info.consolidation_entity
565 AND impacted_flag = 'Y';
566 END IF;
567
568 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
569 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_ADJ_REQUIRED', 'Found an Impact');
570 END IF;
571
572 result := 'COMPLETE:T';
573 --Bugfix 3818829 : Must undo all prior eliminations
574 l_parameter_list.hierarchy_id := cons_entity_wf_info.consolidation_hierarchy;
575 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
576 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
577
578 -- Bugfix 5065553 : Added hierarchy dataset code parameter
579 l_parameter_list.hierarchy_dataset_code := cons_entity_wf_info.hierarchy_dataset_code;
580
581 execute_module (module_code => 'UNDO_ELIMINATIONS',
582 p_parameter_list => l_parameter_list,
583 p_item_key => itemkey);
584 EXCEPTION
585 WHEN NO_DATA_FOUND THEN
586 -- Need to copy run details for the prior run
587 result := 'COMPLETE:F';
588 gcs_cons_eng_run_dtls_pkg.copy_prior_run_dtls(
589 p_prior_run_name => cons_entity_wf_info.prior_run_identifier,
590 p_current_run_name => cons_entity_wf_info.run_identifier,
591 p_itemtype => itemtype,
592 p_entity_id => l_child_entity_id);
593 END;
594 ELSIF (cons_entity_wf_info.prior_run_identifier <> 'NO_PRIOR_RUN') THEN
595 --Bugfix 3818829 : Must undo all prior eliminations
596 result := 'COMPLETE:T';
597 l_parameter_list.hierarchy_id := cons_entity_wf_info.consolidation_hierarchy;
598 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
599 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
600
601 -- Bugfix 5065553 : Added hierarchy dataset code parameter
602 l_parameter_list.hierarchy_dataset_code := cons_entity_wf_info.hierarchy_dataset_code;
603
604 execute_module (module_code => 'UNDO_ELIMINATIONS',
605 p_parameter_list => l_parameter_list,
606 p_item_key => itemkey);
607 ELSE
608 result := 'COMPLETE:T';
609 END IF;
610 END IF;
611
612 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
613 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_ADJ_REQUIRED.end', '<<Exit for itemkey : ' || itemkey || ' >>');
614 END IF;
615
616 END check_adj_required;
617
618 PROCEDURE category_exists( itemtype IN VARCHAR2,
619 itemkey IN VARCHAR2,
620 actid IN NUMBER,
621 funcmode IN varchar2,
622 result IN OUT NOCOPY varchar2)
623
624 IS
625
626 l_curr_category_number NUMBER(15) := NULL;
627 l_max_category_number NUMBER(15) := NULL;
628
629 BEGIN
630
631 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
632 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CATEGORY_EXISTS.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
633 END IF;
634
635 l_curr_category_number := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
636 l_max_category_number := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'NUM_OF_CATEGORIES', FALSE);
637 l_curr_category_number := l_curr_category_number + 1;
638
639 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
640 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.CATEGORY_EXISTS', 'Current Category Number : ' || l_curr_category_number);
641 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.CATEGORY_EXISTS', 'Max Category Number : ' || l_max_category_number);
642 END IF;
643
644 IF (l_curr_category_number > l_max_category_number) THEN
645 result := 'COMPLETE:F';
646 ELSE
647 WF_ENGINE.SetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', l_curr_category_number);
648 result := 'COMPLETE:T';
649 END IF;
650
651 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
652 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CATEGORY_EXISTS.end', '<<Exit for itemkey : ' || itemkey || ' >>');
653 END IF;
654 END category_exists;
655
656 PROCEDURE check_max_category( itemtype IN VARCHAR2,
657 itemkey IN VARCHAR2,
658 actid IN NUMBER,
659 funcmode IN varchar2,
660 result IN OUT NOCOPY varchar2)
661
662 IS
663 l_curr_category_number NUMBER(15) := NULL;
664 l_max_category_number NUMBER(15) := NULL;
665
666 BEGIN
667
668 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
669 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_MAX_CATEGORY.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
670 END IF;
671
672 l_curr_category_number := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
673 l_max_category_number := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'NUM_OF_CATEGORIES', FALSE);
674
675 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
676 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.CHECK_MAX_CATEGORY', 'Current Category Number : ' || l_curr_category_number);
677 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.CHECK_MAX_CATEGORY', 'Max Category Number : ' || l_max_category_number);
678 END IF;
679
680 IF (l_curr_category_number = l_max_category_number) THEN
681 result := 'COMPLETE:F';
682 ELSE
683 result := 'COMPLETE:T';
684 END IF;
685
686 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
687 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CHECK_MAX_CATEGORY.end', '<<Exit for itemkey : ' || itemkey || ' >>');
688 END IF;
689
690 END check_max_category;
691
692 PROCEDURE extract_manual_adj( itemtype IN VARCHAR2,
693 itemkey IN VARCHAR2,
694 actid IN NUMBER,
695 funcmode IN varchar2,
696 result IN OUT NOCOPY varchar2)
697
698 IS
699
700 l_category_code VARCHAR2(30);
701 l_curr_category_number NUMBER(15);
702 l_entity_id NUMBER(15);
703 cons_entity_wf_info gcs_cons_eng_utility_pkg.r_cons_entity_wf_info;
704 oper_entity_wf_info gcs_cons_eng_utility_pkg.r_oper_entity_wf_info;
705 l_entry_id NUMBER(15);
706 l_stat_entry_id NUMBER(15);
707 x_errbuf VARCHAR2(200);
708 x_retcode VARCHAR2(200);
709 l_run_detail_id NUMBER(15);
710
711 -- Bugfix 4272275: Added fix to put correct child_entity_id in gcs_cons_eng_run_dtls
712 -- Bugfix 5763719: Modified to fetch even entries with disbled_flag 'Y' (for entries
713 -- which are disabled as of a period.
714
715 CURSOR c_acqdisp_headers ( p_cal_period_id IN NUMBER,
716 p_hierarchy_id IN NUMBER,
717 p_entity_id IN NUMBER,
718 p_balance_type_code IN VARCHAR2)
719
720 IS
721 SELECT geh.entry_id,
722 geh.currency_code,
723 geh.process_code,
724 geh.period_init_entry_flag,
725 gcr.child_entity_id,
726 DECODE(geh.suspense_exceeded_flag, 'Y',
727 'WARNING',
728 'COMPLETED') request_status
729 FROM gcs_entry_headers geh,
730 gcs_ad_transactions gad,
731 gcs_cons_relationships gcr
732 WHERE geh.entry_id = gad.assoc_entry_id
733 AND gcr.cons_relationship_id = NVL(gad.post_cons_relationship_id, gad.pre_cons_relationship_id)
734 AND geh.category_code = 'ACQ_DISP'
735 AND geh.hierarchy_id = p_hierarchy_id
736 AND geh.entity_id = p_entity_id
737 AND ( geh.approval_status_code = 'APPROVED' or geh.approval_status_code is NULL)
738 AND geh.balance_type_code = p_balance_type_code
739 AND p_cal_period_id BETWEEN geh.start_cal_period_id
740 AND nvl(disabled_cal_period_id, NVL(geh.end_cal_period_id, p_cal_period_id))
741 AND 'N' = DECODE(geh.start_cal_period_id, geh.end_cal_period_id, geh.disabled_flag, 'N');
742
743
744 -- Bugfix 5763719: Modified to fetch even entries with disbled_flag 'Y' (for entries
745 -- which are disabled as of a period.
746
747 -- Bugfix 5974244: Modified condition to insure adjustment is not picked up on disabled period
748 -- Modifed nvl(disabled_cal_period_id, to be disabled_cal_period_id - 1
749
750 CURSOR c_adjustment_headers ( p_cal_period_id IN NUMBER,
751 p_hierarchy_id IN NUMBER,
752 p_entity_id IN NUMBER,
753 p_category_code IN VARCHAR2,
754 p_balance_type_code IN VARCHAR2)
755 IS
756 SELECT geh.entry_id,
757 geh.currency_code,
758 geh.process_code,
759 geh.period_init_entry_flag
760 FROM gcs_entry_headers geh
761 WHERE 'MANUAL' = DECODE(geh.period_init_entry_flag, 'Y', 'MANUAL', geh.entry_type_code)
762 -- Bugfix 3718501 : Modified the Join Condition to Extract Automatically Generated A&D Entries
763 -- AND geh.entry_type_code = 'MANUAL' -- Bugfix 3704972 : Extract Only Manual Adjustments
764 -- Bugfix 3827087 : Modifed the Join Condition to Extract Period Initialization Entries as well
765 AND geh.category_code = p_category_code
766 AND geh.hierarchy_id = p_hierarchy_id
767 AND geh.entity_id = p_entity_id
768 AND geh.balance_type_code = p_balance_type_code
769 AND geh.processed_run_name IS NULL
770 AND ( geh.approval_status_code = 'APPROVED' or geh.approval_status_code is NULL)
771 AND p_cal_period_id BETWEEN geh.start_cal_period_id
772 AND NVL(disabled_cal_period_id - 1, NVL(geh.end_cal_period_id, p_cal_period_id))
773 AND 'N' = DECODE(geh.start_cal_period_id, geh.end_cal_period_id, geh.disabled_flag, 'N');
774
775 BEGIN
776 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
777 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXTRACT_MANUAL_ADJ.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
778 END IF;
779
780 l_curr_category_number := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
781
782 IF (itemtype = 'GCSOPRWF') THEN
783 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
784 itemkey,
785 cons_entity_wf_info,
786 oper_entity_wf_info);
787 l_entity_id := oper_entity_wf_info.operating_entity;
788 l_category_code := gcs_categories_pkg.g_oper_category_info(l_curr_category_number).category_code;
789 ELSE
790 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
791 itemkey,
792 cons_entity_wf_info);
793 l_category_code := gcs_categories_pkg.g_cons_category_info(l_curr_category_number).category_code;
794 l_entity_id := cons_entity_wf_info.consolidation_entity;
795
796 -- Bugfix 3870959 : Extract Appropriate Entity based off of Target Entity Code
797 IF (gcs_categories_pkg.g_cons_category_info(l_curr_category_number).target_entity_code = 'ELIMINATION') THEN
798 SELECT fea.dim_attribute_numeric_member
799 INTO l_entity_id
800 FROM fem_entities_attr fea
801 WHERE fea.entity_id = cons_entity_wf_info.consolidation_entity
802 AND fea.attribute_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').attribute_id
803 AND fea.version_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').version_id;
804 ELSE
805 BEGIN
806 SELECT fea.dim_attribute_numeric_member
807 INTO l_entity_id
808 FROM fem_entities_attr fea
809 WHERE fea.entity_id = cons_entity_wf_info.consolidation_entity
810 AND fea.attribute_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-OPERATING_ENTITY').attribute_id
811 AND fea.version_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-OPERATING_ENTITY').version_id;
812 EXCEPTION
813 WHEN OTHERS THEN
814 l_entity_id := -1;
815 END;
816 END IF;
817 END IF;
818
819 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
820 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.EXTRACT_MANUAL_ADJ', 'Category Code : ' || l_category_code);
821 END IF;
822
823 IF (l_category_code = 'ACQ_DISP') THEN
824
825 FOR v_acqdisp_headers IN c_acqdisp_headers( cons_entity_wf_info.cal_period_id,
826 cons_entity_wf_info.consolidation_hierarchy,
827 l_entity_id,
828 cons_entity_wf_info.balance_type_code) LOOP
829
830 GCS_CONS_ENG_RUN_DTLS_PKG.insert_row(p_run_name => cons_entity_wf_info.run_identifier,
831 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
832 p_category_code => 'ACQ_DISP',
833 p_child_entity_id => v_acqdisp_headers.child_entity_id,
834 p_entry_id => v_acqdisp_headers.entry_id,
835 p_stat_entry_id => NULL,
836 p_cons_relationship_id => -1,
837 p_request_error_code => v_acqdisp_headers.request_status,
838 p_bp_request_error_code => v_acqdisp_headers.request_status,
839 p_run_detail_id => l_run_detail_id);
840
841 END LOOP;
842
843 ELSE
844
845 FOR v_adjustment_headers IN c_adjustment_headers( cons_entity_wf_info.cal_period_id,
846 cons_entity_wf_info.consolidation_hierarchy,
847 l_entity_id,
848 l_category_code,
849 cons_entity_wf_info.balance_type_code) LOOP
850 l_entry_id := null;
851 l_stat_entry_id := null;
852
853 IF (v_adjustment_headers.currency_code <> 'STAT') THEN
854 l_entry_id := v_adjustment_headers.entry_id;
855 ELSE
856 l_stat_entry_id := v_adjustment_headers.entry_id;
857 END IF;
858
859 GCS_CONS_ENG_RUN_DTLS_PKG.insert_row(p_run_name => cons_entity_wf_info.run_identifier,
860 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
861 p_category_code => l_category_code,
862 p_child_entity_id => l_entity_id,
863 p_entry_id => l_entry_id,
864 p_stat_entry_id => l_stat_entry_id,
865 p_cons_relationship_id => -1,
866 p_request_error_code => 'COMPLETED',
867 p_bp_request_error_code => 'COMPLETED',
868 p_run_detail_id => l_run_detail_id);
869
870 IF (v_adjustment_headers.period_init_entry_flag = 'N') THEN
871 GCS_INTERCO_DYNAMIC_PKG.Insert_Interco_Trx(p_entry_id => NVL(l_entry_id, -1),
872 p_stat_entry_id => NVL(l_stat_entry_id, -1),
873 p_hierarchy_id => cons_entity_wf_info.consolidation_hierarchy,
874 -- Bugfix 3800083 : Added Period End Date as a parameter
875 p_period_end_date => cons_entity_wf_info.cal_period_end_date,
876 x_errbuf => x_errbuf,
877 x_retcode => x_retcode);
878 END IF;
879
880 IF (v_adjustment_headers.process_code = 'SINGLE_RUN_FOR_PERIOD') THEN
881 update_entry_headers(cons_entity_wf_info.run_identifier,
882 v_adjustment_headers.entry_id);
883 END IF;
884 END LOOP;
885 END IF;
886
887 result := 'COMPLETE';
888 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
889 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXTRACT_MANUAL_ADJ.end', '<<Enter for itemkey : ' || itemkey || ' >>');
890 END IF;
891
892 END extract_manual_adj;
893
894 PROCEDURE check_translation_required( itemtype IN VARCHAR2,
895 itemkey IN VARCHAR2,
896 actid IN NUMBER,
897 funcmode IN varchar2,
898 result IN OUT NOCOPY varchar2)
899
900 IS
901
902 cons_entity_wf_info gcs_cons_eng_utility_pkg.r_cons_entity_wf_info;
903 oper_entity_wf_info gcs_cons_eng_utility_pkg.r_oper_entity_wf_info;
904 l_translation_required VARCHAR2(1);
905 l_xlate_mode VARCHAR2(30);
906 l_rate_change_occurred VARCHAR2(1);
907
908 BEGIN
909
910 l_translation_required := WF_ENGINE.GetItemAttrText(itemtype, itemkey, 'TRANSLATION_REQUIRED', FALSE);
911 l_xlate_mode := WF_ENGINE.GetActivityAttrText(itemtype, itemkey, actid, 'TRANSLATION_MODE', FALSE);
912
913 IF (itemtype = 'GCSOPRWF') THEN
914 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
915 itemkey,
916 cons_entity_wf_info,
917 oper_entity_wf_info);
918 ELSE
919 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
920 itemkey,
921 cons_entity_wf_info);
922 END IF;
923
924 IF (l_translation_required = 'Y') THEN
925 result := 'COMPLETE:T';
926 ELSE
927 result := 'COMPLETE:F';
928 END IF;
929 END check_translation_required;
930
931
932 PROCEDURE execute_translation( itemtype IN VARCHAR2,
933 itemkey IN VARCHAR2,
934 actid IN NUMBER,
935 funcmode IN varchar2,
936 result IN OUT NOCOPY varchar2)
937 IS
938
939 --STK: Bugfix 5/5/2004 Resolved Issue with Accessing Balance Type Info for Operating Entities
940 cons_entity_wf_info r_cons_entity_wf_info;
941 oper_entity_wf_info r_oper_entity_wf_info;
942
943 l_entry_id NUMBER(15);
944 l_xlate_entry_id NUMBER(15);
945 l_cons_relationship_id NUMBER(15);
946 l_run_detail_id NUMBER(15);
947 l_child_entity_id NUMBER;
948 x_errbuf VARCHAR2(2000);
949 x_retcode VARCHAR2(2000);
950 l_execution_mode VARCHAR2(30);
951 l_balance_type_code VARCHAR2(30);
952 l_parameter_list gcs_cons_eng_utility_pkg.r_module_parameters;
953 l_curr_category_number NUMBER(15);
954 l_category_code VARCHAR2(30);
955
956 -- Bugfix 3972840 : Remove code to translate adjustment entries
957
958 --Bugfix 5287762: Check if there is data to translate prior to running translation
959 l_translation_req_flag VARCHAR2(1) := 'Y';
960
961 BEGIN
962 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
963 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXECUTE_TRANSLATION.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
964 END IF;
965
966 IF (itemtype = 'GCSOPRWF') THEN
967 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
968 itemkey,
969 cons_entity_wf_info,
970 oper_entity_wf_info);
971
972 l_child_entity_id := oper_entity_wf_info.operating_entity;
973
974 ELSE
975 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
976 itemkey,
977 cons_entity_wf_info);
978
979 l_child_entity_id := cons_entity_wf_info.consolidation_entity;
980 END IF;
981
982 l_execution_mode := WF_ENGINE.GetActivityAttrText(itemtype, itemkey, actid, 'EXECUTION_MODE', FALSE);
983 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
984 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
985 -- Bugfix 5017120: Added support for translating additional data types
986 l_parameter_list.hierarchy_dataset_code := cons_entity_wf_info.hierarchy_dataset_code;
987 -- Remove Code to Translate Adjustments
988 l_parameter_list.run_detail_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'RUN_DETAIL_ID', FALSE);
989
990 IF (itemtype = 'GCSOPRWF') THEN
991 l_parameter_list.cons_relationship_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONS_RELATIONSHIP_ID', FALSE);
992 l_parameter_list.xlate_mode := cons_entity_wf_info.process_method;
993
994 --Bugfix 5287762: Check to see if any data has been posted for the operational entity
995 SELECT DECODE(count(run_detail_id), 0, 'N', 'Y')
996 INTO l_translation_req_flag
997 FROM gcs_cons_eng_run_dtls
998 WHERE run_name = cons_entity_wf_info.run_identifier
999 AND child_entity_id = oper_entity_wf_info.operating_entity
1000 AND consolidation_entity_id = cons_entity_wf_info.consolidation_entity
1001 AND entry_id IS NOT NULL;
1002
1003 ELSE
1004 SELECT cons_relationship_id
1005 INTO l_parameter_list.cons_relationship_id
1006 FROM gcs_cons_eng_run_dtls
1007 WHERE run_detail_id = l_parameter_list.run_detail_id;
1008 END IF;
1009
1010 SELECT gcerd.run_detail_id,
1011 gcs_entry_headers_s.nextval
1012 INTO l_parameter_list.run_detail_id,
1013 l_parameter_list.xlate_entry_id
1014 FROM gcs_cons_eng_run_dtls gcerd
1015 WHERE gcerd.run_name = cons_entity_wf_info.run_identifier
1016 AND gcerd.category_code = 'TRANSLATION'
1017 AND gcerd.child_entity_id = l_child_entity_id;
1018
1019 WF_ENGINE.SetItemAttrNumber(itemtype, itemkey, 'XLATE_ENTRY_ID', l_parameter_list.xlate_entry_id);
1020
1021 --Bugfix 5287762: Execute translation only if the translation required flag is set to 'Y'
1022
1023 IF (l_translation_req_flag = 'Y') THEN
1024 execute_module ( module_code => 'TRANSLATION',
1025 p_parameter_list => l_parameter_list,
1026 p_item_key => itemkey);
1027 ELSE
1028 gcs_cons_eng_run_dtls_pkg.update_entry_headers_async
1029 ( p_run_detail_id => l_parameter_list.run_detail_id,
1030 p_request_error_code => 'NOT_APPLICABLE',
1031 p_bp_request_error_code => 'NOT_APPLICABLE');
1032 END IF;
1033
1034
1035 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1036 --submit_xml_ntf_program( p_run_name => cons_entity_wf_info.run_identifier,
1037 -- p_cons_entity_id => cons_entity_wf_info.consolidation_entity,
1038 -- p_category_code => 'TRANSLATION',
1039 -- p_run_detail_id => l_parameter_list.run_detail_id);
1040
1041 result := 'COMPLETE';
1042
1043 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1044 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.EXECUTE_TRANSLATION.end', '<<Exit for itemkey : ' || itemkey || ' >>');
1045 END IF;
1046
1047 END execute_translation;
1048
1049 PROCEDURE update_process_status( itemtype IN VARCHAR2,
1050 itemkey IN VARCHAR2,
1051 actid IN NUMBER,
1052 funcmode IN varchar2,
1053 result IN OUT NOCOPY varchar2)
1054
1055 IS
1056 l_category_code VARCHAR2(30);
1057 l_curr_category_num NUMBER(15);
1058 l_status_code VARCHAR2(30);
1059 cons_entity_wf_info gcs_cons_eng_utility_pkg.r_cons_entity_wf_info;
1060 oper_entity_wf_info gcs_cons_eng_utility_pkg.r_oper_entity_wf_info;
1061
1062 BEGIN
1063 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1064 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.UPDATE_PROCESS_STATUS.begin', '<<Enter for itemkey : ' || itemkey || ' >>');
1065 END IF;
1066
1067 IF (itemtype = 'GCSOPRWF') THEN
1068 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
1069 itemkey,
1070 cons_entity_wf_info,
1071 oper_entity_wf_info);
1072 ELSE
1073 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
1074 itemkey,
1075 cons_entity_wf_info);
1076 END IF;
1077
1078 l_category_code := WF_ENGINE.GetActivityAttrText(itemtype, itemkey, actid, 'CATEGORY_CODE', FALSE);
1079 l_status_code := WF_ENGINE.GetActivityAttrText(itemtype, itemkey, actid, 'STATUS_CODE', FALSE);
1080
1081 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
1082 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.UPDATE_PROCESS_STATUS', 'Category Code : ' || l_category_code);
1083 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.UPDATE_PROCESS_STATUS', 'Item Type : ' || itemtype);
1084 END IF;
1085
1086 IF (l_category_code = 'DATAPREPARATION') THEN
1087
1088 gcs_cons_eng_run_dtls_pkg.update_category_status(
1089 p_run_name => cons_entity_wf_info.run_identifier,
1090 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
1091 p_category_code => l_category_code,
1092 p_status => l_status_code);
1093
1094
1095 ELSIF ((l_category_code = 'CONS_ADJUSTMENT' AND itemtype = 'GCSENGNE') OR
1096 (itemtype = 'GCSOPRWF' AND l_status_code = 'IN_PROGRESS')) THEN
1097
1098 l_curr_category_num := WF_Engine.GetItemAttrText(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
1099 IF (itemtype = 'GCSENGNE') THEN
1100 l_category_code := gcs_categories_pkg.g_cons_category_info(l_curr_category_num).category_code;
1101 ELSE
1102 l_category_code := gcs_categories_pkg.g_oper_category_info(l_curr_category_num).category_code;
1103 END IF;
1104 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
1105 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.UPDATE_PROCESS_STATUS', 'Actual Category Code : ' || l_category_code);
1106 END IF;
1107 gcs_cons_eng_run_dtls_pkg.update_category_status(
1108 p_run_name => cons_entity_wf_info.run_identifier,
1109 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
1110 p_category_code => l_category_code,
1111 p_status => l_status_code);
1112
1113 END IF;
1114
1115 result := 'COMPLETE';
1116 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1117 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.UPDATE_PROCESS_STATUS', '<<Exit for itemkey : ' || itemkey || ' >>');
1118 END IF;
1119 END update_process_status;
1120
1121 PROCEDURE eliminations_processor( itemtype IN VARCHAR2,
1122 itemkey IN VARCHAR2,
1123 actid IN NUMBER,
1124 funcmode IN varchar2,
1125 result IN OUT NOCOPY varchar2)
1126
1127 IS
1128
1129 cons_entity_wf_info gcs_cons_eng_utility_pkg.r_cons_entity_wf_info;
1130 oper_entity_wf_info gcs_cons_eng_utility_pkg.r_oper_entity_wf_info;
1131 x_retcode VARCHAR2(2000);
1132 x_errbuf VARCHAR2(200);
1133 l_curr_category_num NUMBER(15);
1134 l_category_code VARCHAR2(30);
1135 l_currency_code VARCHAR2(30);
1136 l_entity_id NUMBER;
1137 l_elim_mode VARCHAR2(2);
1138 l_parameter_list gcs_cons_eng_utility_pkg.r_module_parameters;
1139 l_run_detail_id NUMBER(15);
1140 l_tgt_entity_id NUMBER(15);
1141 l_elim_entity_attr NUMBER(15) :=
1142 gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').attribute_id;
1143 l_elim_entity_version NUMBER(15) :=
1144 gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').version_id;
1145 l_oper_entity_attr NUMBER(15) :=
1146 gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-OPERATING_ENTITY').attribute_id;
1147 l_oper_entity_version NUMBER(15) :=
1148 gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-OPERATING_ENTITY').version_id;
1149
1150
1151 --Bugfix 5017120: Support for additional data types
1152 l_apply_elim_rules_flag VARCHAR2(1);
1153 l_apply_cons_rules_flag VARCHAR2(1);
1154
1155 --Bugfix 3873087 : Added cursor to hit operating level adjustments
1156
1157 CURSOR c_oper_entity_rules (p_hierarchy_id IN NUMBER,
1158 p_child_entity_id IN NUMBER,
1159 p_cal_period_end_date IN DATE,
1160 p_category_code IN VARCHAR2,
1161 p_balance_type_code IN VARCHAR2)
1162 IS
1163 SELECT gcr.parent_entity_id,
1164 gcr.child_entity_id,
1165 gcr.cons_relationship_id,
1166 gerr.rule_id,
1167 --Bugfix 5017120: Removing gdc.dataset_code from this query to support additional data types
1168 -1 elimination_entity_id,
1169 geca.currency_code,
1170 gcr.ownership_percent / 100 ownership_percent,
1171 gcatb.target_entity_code
1172 FROM gcs_cons_relationships gcr,
1173 gcs_entity_cons_attrs geca,
1174 gcs_elim_rule_rels gerr,
1175 gcs_dataset_codes gdc,
1176 gcs_elim_rules_b grb,
1177 gcs_categories_b gcatb
1178 WHERE gcr.hierarchy_id = p_hierarchy_id
1179 AND gcr.dominant_parent_flag = 'Y'
1180 AND gcr.child_entity_id = p_child_entity_id
1181 AND gcatb.category_code = p_category_code
1182 AND grb.transaction_type_code = gcatb.category_code
1183 AND p_cal_period_end_date BETWEEN gcr.start_date AND NVL(gcr.end_date, p_cal_period_end_date)
1184 AND gcr.child_entity_id = geca.entity_id
1185 AND gcr.hierarchy_id = geca.hierarchy_id
1186 AND gcr.treatment_id = gerr.treatment_id
1187 AND gcr.hierarchy_id = gdc.hierarchy_id
1188 AND gdc.balance_type_code = p_balance_type_code
1189 AND gerr.rule_id = grb.rule_id
1190 AND grb.enabled_flag = 'Y';
1191
1192 CURSOR c_cons_entity_rules (p_hierarchy_id IN NUMBER,
1193 p_cons_entity_id IN NUMBER,
1194 p_cal_period_end_date IN DATE,
1195 p_category_code IN VARCHAR2,
1196 p_balance_type_code IN VARCHAR2)
1197
1198 IS
1199 SELECT gcr.parent_entity_id,
1200 gcr.child_entity_id,
1201 gcr.cons_relationship_id,
1202 gerr.rule_id,
1203 --Bugfix 5017120: Removing gcs.dataset_code from this query to support additional data types
1204 fea.dim_attribute_numeric_member elimination_entity_id,
1205 geca.currency_code,
1206 gcr.ownership_percent / 100 ownership_percent,
1207 gcatb.target_entity_code
1208 FROM gcs_cons_relationships gcr,
1209 gcs_entity_cons_attrs geca,
1210 gcs_elim_rule_rels gerr,
1211 gcs_dataset_codes gdc,
1212 fem_entities_attr fea,
1213 gcs_elim_rules_b grb,
1214 gcs_categories_b gcatb
1215 WHERE gcr.hierarchy_id = p_hierarchy_id
1216 AND gcr.parent_entity_id = p_cons_entity_id
1217 AND gcr.dominant_parent_flag = 'Y'
1218 AND gcatb.category_code = p_category_code
1219 AND grb.transaction_type_code = gcatb.category_code
1220 AND p_cal_period_end_date BETWEEN gcr.start_date AND NVL(gcr.end_date, p_cal_period_end_date)
1221 AND gcr.parent_entity_id = geca.entity_id
1222 AND gcr.hierarchy_id = geca.hierarchy_id
1223 AND gcr.treatment_id = gerr.treatment_id
1224 AND gcr.hierarchy_id = gdc.hierarchy_id
1225 AND gdc.balance_type_code = p_balance_type_code
1226 AND fea.entity_id = gcr.parent_entity_id
1227 AND gerr.rule_id = grb.rule_id
1228 AND grb.enabled_flag = 'Y'
1229 AND fea.attribute_id = l_elim_entity_attr
1230 AND fea.version_id = l_elim_entity_version;
1231
1232 -- Bugfix 5450725: Modified c_pm_entity_entries for multiple parents filtering
1233
1234 CURSOR c_mp_entity_entries (p_hierarchy_id IN NUMBER,
1235 p_category_code IN VARCHAR2,
1236 p_balance_type_code IN VARCHAR2,
1237 p_cal_period_id IN NUMBER,
1238 p_target_entity_id IN NUMBER)
1239 IS
1240
1241 SELECT gcerd.child_entity_id,
1242 gcerd.rule_id,
1243 geh.entry_id
1244 FROM gcs_cons_eng_run_dtls gcerd,
1245 gcs_entry_headers geh,
1246 gcs_cons_eng_runs gcer
1247 WHERE geh.hierarchy_id = p_hierarchy_id
1248 AND geh.entity_id = p_target_entity_id
1249 AND geh.category_code = p_category_code
1250 AND geh.entry_type_code = 'MULTIPLE_PARENTS'
1251 AND geh.start_cal_period_id = p_cal_period_id
1252 AND geh.end_cal_period_id = p_cal_period_id
1253 AND geh.balance_type_code = p_balance_type_code
1254 AND geh.assoc_entry_id = gcerd.entry_id
1255 AND gcerd.category_code = p_category_code
1256 AND gcerd.consolidation_entity_id = gcer.run_entity_id
1257 AND gcerd.run_name = gcer.run_name
1258 AND gcer.hierarchy_id = p_hierarchy_id
1259 AND gcer.cal_period_id = p_cal_period_id
1260 AND gcer.most_recent_flag = 'Y';
1261
1262 BEGIN
1263 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1264 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.ELIMINATIONS_PROCESSOR.begin', '<<Enter Module for item key : ' || itemkey || '>>');
1265 END IF;
1266 l_curr_category_num := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CURR_CATEGORY_NUM', FALSE);
1267
1268 IF (itemtype = 'GCSOPRWF') THEN
1269 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
1270 itemkey,
1271 cons_entity_wf_info,
1272 oper_entity_wf_info);
1273
1274 l_category_code := gcs_categories_pkg.g_oper_category_info(l_curr_category_num).category_code;
1275 l_entity_id := oper_entity_wf_info.operating_entity;
1276
1277 ELSE
1278 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
1279 itemkey,
1280 cons_entity_wf_info);
1281 l_category_code := gcs_categories_pkg.g_cons_category_info(l_curr_category_num).category_code;
1282 l_entity_id := cons_entity_wf_info.consolidation_entity;
1283
1284 END IF;
1285
1286 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
1287 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Processing Category Code : ' || l_category_code);
1288 END IF;
1289
1290 --Bugfix 5017120: Retrieve the eliminiation rules flag and consolidation rules flag
1291 SELECT apply_elim_rules_flag,
1292 apply_cons_rules_flag
1293 INTO l_apply_elim_rules_flag,
1294 l_apply_cons_rules_flag
1295 FROM gcs_data_type_codes_b
1296 WHERE data_type_code = cons_entity_wf_info.balance_type_code;
1297
1298 IF ((l_apply_elim_rules_flag = 'Y') AND
1299 ((l_category_code = 'INTERCOMPANY') OR
1300 (l_category_code = 'INTRACOMPANY'))) THEN
1301
1302 IF (l_category_code = 'INTERCOMPANY') THEN
1303 l_elim_mode := 'IE';
1304 l_parameter_list.bp_post_xlate := 'N';
1305 ELSE
1306 l_elim_mode := 'IA';
1307 l_parameter_list.bp_post_xlate := oper_entity_wf_info.translation_required;
1308 END IF;
1309
1310 SELECT currency_code
1311 INTO l_currency_code
1312 FROM gcs_entity_cons_attrs
1313 WHERE hierarchy_id = cons_entity_wf_info.consolidation_hierarchy
1314 AND entity_id = l_entity_id;
1315
1316 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN
1317 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Parameters for Intercompany Engine');
1318 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Consolidation Hierarchy : ' || cons_entity_wf_info.consolidation_hierarchy );
1319 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Calendar Period : ' || cons_entity_wf_info.consolidation_hierarchy );
1320 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Balance Type : ' || cons_entity_wf_info.balance_type_code );
1321 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Entity Identifier : ' || l_entity_id );
1322 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Elimination Mode : ' || l_elim_mode);
1323 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Currency Code : ' || l_currency_code);
1324 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, g_api || '.ELIMINATIONS_PROCESSOR', 'Run Name : ' || cons_entity_wf_info.run_identifier);
1325 END IF;
1326
1327 l_parameter_list.hierarchy_id := cons_entity_wf_info.consolidation_hierarchy;
1328 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
1329 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
1330 l_parameter_list.child_entity_id := l_entity_id;
1331 l_parameter_list.run_name := cons_entity_wf_info.run_identifier;
1332 l_parameter_list.currency_code := l_currency_code;
1333 l_parameter_list.intercompany_mode := l_elim_mode;
1334
1335 execute_module('INTERCOMPANY', l_parameter_list,itemkey);
1336
1337 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1338 --IF (l_elim_mode = 'IA') THEN
1339 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1340 --submit_xml_ntf_program(p_run_name => cons_entity_wf_info.run_identifier,
1341 -- p_cons_entity_id => cons_entity_wf_info.consolidation_entity,
1342 -- p_category_code => 'INTRACOMPANY',
1343 -- p_child_entity_id => l_parameter_list.child_entity_id);
1344 --ELSE
1345 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1346 --submit_xml_ntf_program(p_run_name => cons_entity_wf_info.run_identifier,
1347 -- p_cons_entity_id => cons_entity_wf_info.consolidation_entity,
1348 -- p_category_code => 'INTERCOMPANY');
1349 --END IF;
1350
1351 -- Bugfix 3873087 : Added code to support operating entity levle rules
1352 ELSIF (itemtype = 'GCSOPRWF') AND
1353 (l_apply_cons_rules_flag = 'Y') THEN -- Process Operating Entity Level Rules
1354
1355 FOR v_oper_entity_rules IN c_oper_entity_rules ( cons_entity_wf_info.consolidation_hierarchy,
1356 oper_entity_wf_info.operating_entity,
1357 cons_entity_wf_info.cal_period_end_date,
1358 l_category_code,
1359 cons_entity_wf_info.balance_type_code)
1360 LOOP
1361 l_parameter_list.rp_parameters.parentEntity := v_oper_entity_rules.parent_entity_id;
1362
1363 GCS_CONS_ENG_RUN_DTLS_PKG.insert_row(p_run_name => cons_entity_wf_info.run_identifier,
1364 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
1365 p_category_code => l_category_code,
1366 p_child_entity_id => v_oper_entity_rules.child_entity_id,
1367 p_rule_id => v_oper_entity_rules.rule_id,
1368 p_cons_relationship_id => v_oper_entity_rules.cons_relationship_id,
1369 p_run_detail_id => l_run_detail_id);
1370
1371
1372 l_parameter_list.rp_parameters.eventCategory := l_category_code;
1373 l_parameter_list.rp_parameters.hierarchy := cons_entity_wf_info.consolidation_hierarchy;
1374 --Bugfix 5017120: Modified dataset code assignments
1375 l_parameter_list.rp_parameters.datasetCode := cons_entity_wf_info.hierarchy_dataset_code;
1376 l_parameter_list.rp_parameters.calPeriodId := cons_entity_wf_info.cal_period_id;
1377 l_parameter_list.rp_parameters.calPeriodEndDate := cons_entity_wf_info.cal_period_end_date;
1378 l_parameter_list.rp_parameters.childEntity := v_oper_entity_rules.child_entity_id;
1379 l_parameter_list.rp_parameters.elimsEntity := v_oper_entity_rules.elimination_entity_id;
1380 l_parameter_list.rp_parameters.currencyCode := v_oper_entity_rules.currency_code;
1381 l_parameter_list.rp_parameters.eventType := 'C';
1382 l_parameter_list.rp_parameters.relationship := v_oper_entity_rules.cons_relationship_id;
1383 l_parameter_list.rp_parameters.runName := cons_entity_wf_info.run_identifier;
1384 l_parameter_list.elim_rule_id := v_oper_entity_rules.rule_id;
1385 l_parameter_list.rp_parameters.eventKey := l_run_detail_id;
1386 l_parameter_list.rp_rule_data.toPercent := v_oper_entity_rules.ownership_percent;
1387 --Bugfix 5103251: Added balance type parameter
1388 l_parameter_list.rp_parameters.balanceTypeCode := cons_entity_wf_info.balance_type_code;
1389
1390 execute_module('RULES_PROCESSOR', l_parameter_list, itemkey);
1391 END LOOP;
1392
1393 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1394 --submit_xml_ntf_program(p_run_name => cons_entity_wf_info.run_identifier,
1395 -- p_cons_entity_id => cons_entity_wf_info.consolidation_entity,
1396 -- p_category_code => l_category_code,
1397 -- p_child_entity_id => oper_entity_wf_info.operating_entity);
1398
1399 ELSIF (itemtype = 'GCSENGNE' AND
1400 l_category_code <> 'ACQ_DISP' AND
1401 l_apply_cons_rules_flag = 'Y') THEN -- Process Consolidation Level Rules
1402
1403 FOR v_cons_entity_rules IN c_cons_entity_rules (cons_entity_wf_info.consolidation_hierarchy,
1404 cons_entity_wf_info.consolidation_entity,
1405 cons_entity_wf_info.cal_period_end_date,
1406 l_category_code,
1407 cons_entity_wf_info.balance_type_code)
1408 LOOP
1409 BEGIN
1410
1411 IF (v_cons_entity_rules.target_entity_code = 'ELIMINATION') THEN
1412 BEGIN
1413 SELECT dim_attribute_numeric_member
1414 INTO l_parameter_list.rp_parameters.parentEntity
1415 FROM fem_entities_attr
1416 WHERE entity_id = v_cons_entity_rules.parent_entity_id
1417 AND attribute_id = l_oper_entity_attr
1418 AND version_id = l_oper_entity_version;
1419 EXCEPTION
1420 WHEN OTHERS THEN
1421 l_parameter_list.rp_parameters.parentEntity := v_cons_entity_rules.parent_entity_id;
1422 END;
1423 ELSIF (v_cons_entity_rules.target_entity_code = 'PARENT') THEN
1424 SELECT dim_attribute_numeric_member
1425 INTO l_parameter_list.rp_parameters.parentEntity
1426 FROM fem_entities_attr
1427 WHERE entity_id = v_cons_entity_rules.parent_entity_id
1428 AND attribute_id = l_oper_entity_attr
1429 AND version_id = l_oper_entity_version;
1430 END IF;
1431
1432 GCS_CONS_ENG_RUN_DTLS_PKG.insert_row(p_run_name => cons_entity_wf_info.run_identifier,
1433 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
1434 p_category_code => l_category_code,
1435 p_child_entity_id => v_cons_entity_rules.child_entity_id,
1436 p_rule_id => v_cons_entity_rules.rule_id,
1437 p_cons_relationship_id => v_cons_entity_rules.cons_relationship_id,
1438 p_run_detail_id => l_run_detail_id);
1439
1440
1441 l_parameter_list.rp_parameters.eventCategory := l_category_code;
1442 l_parameter_list.rp_parameters.hierarchy := cons_entity_wf_info.consolidation_hierarchy;
1443 --Bugfix 5017120: Changing assignment of dataset code to support multiple data types
1444 l_parameter_list.rp_parameters.datasetCode := cons_entity_wf_info.hierarchy_dataset_code;
1445 l_parameter_list.rp_parameters.calPeriodId := cons_entity_wf_info.cal_period_id;
1446 l_parameter_list.rp_parameters.calPeriodEndDate := cons_entity_wf_info.cal_period_end_date;
1447 l_parameter_list.rp_parameters.childEntity := v_cons_entity_rules.child_entity_id;
1448 l_parameter_list.rp_parameters.elimsEntity := v_cons_entity_rules.elimination_entity_id;
1449 l_parameter_list.rp_parameters.currencyCode := v_cons_entity_rules.currency_code;
1450 l_parameter_list.rp_parameters.eventType := 'C';
1451 l_parameter_list.rp_parameters.relationship := v_cons_entity_rules.cons_relationship_id;
1452 l_parameter_list.elim_rule_id := v_cons_entity_rules.rule_id;
1453 l_parameter_list.rp_parameters.eventKey := l_run_detail_id;
1454 l_parameter_list.rp_rule_data.toPercent := v_cons_entity_rules.ownership_percent;
1455 l_parameter_list.rp_parameters.runName := cons_entity_wf_info.run_identifier;
1456 --Bugfix 5103251: Added balance type parameter
1457 l_parameter_list.rp_parameters.balanceTypeCode := cons_entity_wf_info.balance_type_code;
1458
1459 execute_module('RULES_PROCESSOR', l_parameter_list, itemkey);
1460
1461 EXCEPTION
1462 WHEN NO_DATA_FOUND THEN
1463 -- no operating entity was found, therefore, equity pick-up rule is just skipped
1464 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1465 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.ELIMINATIONS_PROCESSOR', SQLERRM);
1466 END IF;
1467 null;
1468 END;
1469 END LOOP;
1470
1471 --Bugfix 4122843: Special Code to Handle Multiple Parent Entries
1472 IF (gcs_categories_pkg.g_cons_category_info(l_curr_category_num).support_multi_parents_flag = 'Y' ) THEN
1473 BEGIN
1474 IF (gcs_categories_pkg.g_cons_category_info(l_curr_category_num).target_entity_code = 'ELIMINATION') THEN
1475 SELECT dim_attribute_numeric_member
1476 INTO l_tgt_entity_id
1477 FROM fem_entities_attr
1478 WHERE entity_id = cons_entity_wf_info.consolidation_entity
1479 AND attribute_id = l_elim_entity_attr
1480 AND version_id = l_elim_entity_version;
1481 ELSE
1482 SELECT dim_attribute_numeric_member
1483 INTO l_tgt_entity_id
1484 FROM fem_entities_attr
1485 WHERE entity_id = cons_entity_wf_info.consolidation_entity
1486 AND attribute_id = l_oper_entity_attr
1487 AND version_id = l_oper_entity_version;
1488 END IF;
1489
1490 --Bugfix 5450725: Modified parameters passes to v_mp_entries
1491
1492 FOR v_mp_entries IN c_mp_entity_entries(
1493 cons_entity_wf_info.consolidation_hierarchy,
1494 l_category_code,
1495 cons_entity_wf_info.balance_type_code,
1496 cons_entity_wf_info.cal_period_id,
1497 l_tgt_entity_id)
1498 LOOP
1499
1500 GCS_CONS_ENG_RUN_DTLS_PKG.insert_row( p_run_name => cons_entity_wf_info.run_identifier,
1501 p_consolidation_entity_id => cons_entity_wf_info.consolidation_entity,
1502 p_category_code => l_category_code,
1503 p_child_entity_id => v_mp_entries.child_entity_id,
1504 p_rule_id => v_mp_entries.rule_id,
1505 p_request_error_code => 'COMPLETED',
1506 p_bp_request_error_code => 'COMPLETED',
1507 p_entry_id => v_mp_entries.entry_id,
1508 p_run_detail_id => l_run_detail_id);
1509 END LOOP;
1510 EXCEPTION
1511 WHEN OTHERS THEN
1512 NULL;
1513 END;
1514 END IF;
1515
1516 --Bugfix 4874306: Eliminate calls to XML Generation in order to leverage data templates
1517 --submit_xml_ntf_program(p_run_name => cons_entity_wf_info.run_identifier,
1518 -- p_cons_entity_id => cons_entity_wf_info.consolidation_entity,
1519 -- p_category_code => l_category_code);
1520
1521 END IF;
1522
1523 result := 'COMPLETE';
1524 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1525 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.ELIMINATIONS_PROCESSOR.end', '<<End Module>>');
1526 END IF;
1527
1528 END eliminations_processor;
1529
1530 PROCEDURE create_initializing_journal( itemtype IN VARCHAR2,
1531 itemkey IN VARCHAR2,
1532 actid IN NUMBER,
1533 funcmode IN varchar2,
1534 result IN OUT NOCOPY varchar2)
1535
1536
1537 IS
1538 cons_entity_wf_info gcs_cons_eng_utility_pkg.r_cons_entity_wf_info;
1539 oper_entity_wf_info gcs_cons_eng_utility_pkg.r_oper_entity_wf_info;
1540 x_retcode VARCHAR2(2000);
1541 x_errbuf VARCHAR2(200);
1542 l_entity_id NUMBER;
1543 l_init_required VARCHAR2(1);
1544 l_parameter_list gcs_cons_eng_utility_pkg.r_module_parameters;
1545
1546 BEGIN
1547
1548 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1549 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CREATE_INITIALIZING_JOURNAL.begin', '<<Enter for item key : ' || itemkey || '>>');
1550 END IF;
1551
1552 IF (itemtype = 'GCSOPRWF') THEN
1553 gcs_cons_eng_utility_pkg.get_oper_entity_wf_info (itemtype,
1554 itemkey,
1555 cons_entity_wf_info,
1556 oper_entity_wf_info);
1557
1558 l_entity_id := oper_entity_wf_info.operating_entity;
1559 l_parameter_list.cons_relationship_id := WF_ENGINE.GetItemAttrNumber(itemtype, itemkey, 'CONS_RELATIONSHIP_ID', FALSE);
1560 --Bugfix 3922840 : We no longer need to create period initialization entries for Translated Results
1561 l_parameter_list.bp_post_xlate := 'N';
1562
1563 SELECT 'Y'
1564 INTO l_init_required
1565 FROM gcs_cons_eng_run_dtls
1566 WHERE run_name = cons_entity_wf_info.run_identifier
1567 AND consolidation_entity_id = cons_entity_wf_info.consolidation_entity
1568 AND child_entity_id = l_entity_id
1569 AND category_code NOT IN ('DATAPREPARATION')
1570 AND ROWNUM < 2;
1571
1572
1573 ELSE
1574 gcs_cons_eng_utility_pkg.get_cons_entity_wf_info(itemtype,
1575 itemkey,
1576 cons_entity_wf_info);
1577 l_parameter_list.bp_post_xlate := 'N';
1578
1579 SELECT dim_attribute_numeric_member
1580 INTO l_entity_id
1581 FROM fem_entities_attr
1582 WHERE entity_id = cons_entity_wf_info.consolidation_entity
1583 AND attribute_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').attribute_id
1584 AND version_id = gcs_utility_pkg.g_dimension_attr_info('ENTITY_ID-ELIMINATION_ENTITY').version_id;
1585
1586 SELECT 'Y'
1587 INTO l_init_required
1588 FROM gcs_cons_eng_run_dtls
1589 WHERE run_name = cons_entity_wf_info.run_identifier
1590 AND consolidation_entity_id = cons_entity_wf_info.consolidation_entity
1591 AND child_entity_id IS NOT NULL
1592 AND category_code NOT IN ('AGGREGATION')
1593 AND ROWNUM < 2;
1594
1595 SELECT cons_relationship_id
1596 INTO l_parameter_list.cons_relationship_id
1597 FROM gcs_cons_relationships
1598 WHERE hierarchy_id = cons_entity_wf_info.consolidation_hierarchy
1599 AND dominant_parent_flag = 'Y'
1600 AND child_entity_id = l_entity_id
1601 AND cons_entity_wf_info.cal_period_end_date BETWEEN start_date AND NVL(end_date, cons_entity_wf_info.cal_period_end_date);
1602
1603 END IF;
1604
1605 IF (l_init_required = 'Y') THEN
1606
1607 l_parameter_list.run_name := cons_entity_wf_info.run_identifier;
1608 l_parameter_list.hierarchy_id := cons_entity_wf_info.consolidation_hierarchy;
1609 l_parameter_list.cons_entity_id := cons_entity_wf_info.consolidation_entity;
1610 l_parameter_list.child_entity_id := l_entity_id;
1611 l_parameter_list.cal_period_id := cons_entity_wf_info.cal_period_id;
1612 l_parameter_list.balance_type_code := cons_entity_wf_info.balance_type_code;
1613
1614 execute_module('PERIOD_INITIALIZATION', l_parameter_list,itemkey);
1615
1616 END IF;
1617
1618 IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
1619 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, g_api || '.CREATE_INITIALIZING_JOURNAL.end', '<<Exit for item key : ' || itemkey || '>>');
1620 END IF;
1621
1622 result := 'COMPLETE';
1623 EXCEPTION
1624 WHEN OTHERS THEN
1625 result := 'COMPLETE';
1626 END create_initializing_journal;
1627
1628 END GCS_CONS_ENG_UTILITY_PKG;
1629