[Home] [Help]
PACKAGE BODY: APPS.PSB_WS_ACCT_PVT
Source
1 PACKAGE BODY PSB_WS_ACCT_PVT AS
2 /* $Header: PSBPWCAB.pls 120.6 2006/05/30 06:55:04 matthoma ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_ACCT_PVT';
5
6 /* ----------------------------------------------------------------------- */
7
8 PROCEDURE Check_CCID_Type
9 ( p_api_version IN NUMBER,
10 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
11 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
12 p_return_status OUT NOCOPY VARCHAR2,
13 p_msg_count OUT NOCOPY NUMBER,
14 p_msg_data OUT NOCOPY VARCHAR2,
15 p_ccid_type OUT NOCOPY VARCHAR2,
16 p_flex_code IN NUMBER,
17 p_ccid IN NUMBER,
18 p_budget_group_id IN NUMBER
19 ) IS
20
21 l_api_name CONSTANT VARCHAR2(30) := 'Check_CCID_Type';
22 l_api_version CONSTANT NUMBER := 1.0;
23
24 BEGIN
25
26 -- Standard call to check for call compatibility.
27
28 if not FND_API.Compatible_API_Call (l_api_version,
29 p_api_version,
30 l_api_name,
31 G_PKG_NAME)
32 then
33 raise FND_API.G_EXC_UNEXPECTED_ERROR;
34 end if;
35
36
37 -- Initialize message list if p_init_msg_list is set to TRUE
38
39 if FND_API.to_Boolean (p_init_msg_list) then
40 FND_MSG_PUB.initialize;
41 end if;
42
43
44 -- Call Private Function
45
46 PSB_WS_ACCT1.Check_CCID_Type
47 (p_api_version => 1.0,
48 p_validation_level => p_validation_level,
49 p_return_status => p_return_status,
50 p_ccid_type => p_ccid_type,
51 p_flex_code => p_flex_code,
52 p_ccid => p_ccid,
53 p_budget_group_id => p_budget_group_id);
54
55
56 -- Standard call to get message count and if count is 1, get message info
57
58 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
59 p_data => p_msg_data);
60
61
62 EXCEPTION
63
64 when FND_API.G_EXC_ERROR then
65 p_return_status := FND_API.G_RET_STS_ERROR;
66 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
67 p_data => p_msg_data);
68
69
70 when FND_API.G_EXC_UNEXPECTED_ERROR then
71 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
72 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
73 p_data => p_msg_data);
74
75
76 when OTHERS then
77 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
78
79 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
80 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
81 l_api_name);
82 end if;
83
84 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
85 p_data => p_msg_data);
86
87 END Check_CCID_Type;
88
89 /* ----------------------------------------------------------------------- */
90
91 PROCEDURE Create_Account_Dist
92 ( p_api_version IN NUMBER,
93 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
94 p_commit IN VARCHAR2 := FND_API.G_FALSE,
95 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
96 p_return_status OUT NOCOPY VARCHAR2,
97 p_account_line_id OUT NOCOPY NUMBER,
98 p_msg_count OUT NOCOPY NUMBER,
99 p_msg_data OUT NOCOPY VARCHAR2,
100 p_worksheet_id IN NUMBER,
101 p_check_spal_exists IN VARCHAR2 := FND_API.G_TRUE,
102 p_gl_cutoff_period IN DATE := FND_API.G_MISS_DATE,
103 p_allocrule_set_id IN NUMBER := FND_API.G_MISS_NUM,
104 p_budget_calendar_id IN NUMBER := FND_API.G_MISS_NUM,
105 p_rounding_factor IN NUMBER := FND_API.G_MISS_NUM,
106 p_stage_set_id IN NUMBER := FND_API.G_MISS_NUM,
107 p_budget_year_id IN NUMBER,
108 p_budget_group_id IN NUMBER,
109 p_ccid IN NUMBER := FND_API.G_MISS_NUM,
110 p_flex_mapping_set_id IN NUMBER := FND_API.G_MISS_NUM,
111 p_map_accounts IN BOOLEAN := FALSE,
112 p_flex_code IN NUMBER := FND_API.G_MISS_NUM,
113 p_concatenated_segments IN VARCHAR2 := FND_API.G_MISS_CHAR,
114 p_startdate_pp IN DATE := FND_API.G_MISS_DATE,
115 p_template_id IN NUMBER := FND_API.G_MISS_NUM,
116 p_currency_code IN VARCHAR2,
117 p_balance_type IN VARCHAR2,
118 p_ytd_amount IN NUMBER,
119 p_distribute_flag IN VARCHAR2 := FND_API.G_FALSE,
120 p_annual_fte IN NUMBER := FND_API.G_MISS_NUM,
121 p_period_amount IN PSB_WS_ACCT1.g_prdamt_tbl_type,
122 p_position_line_id IN NUMBER := FND_API.G_MISS_NUM,
123 p_element_set_id IN NUMBER := FND_API.G_MISS_NUM,
124 p_salary_account_line IN VARCHAR2 := FND_API.G_FALSE,
125 p_service_package_id IN NUMBER := FND_API.G_MISS_NUM,
126 p_start_stage_seq IN NUMBER := FND_API.G_MISS_NUM,
127 p_current_stage_seq IN NUMBER := FND_API.G_MISS_NUM,
128 p_end_stage_seq IN NUMBER := FND_API.G_MISS_NUM,
129 p_copy_of_account_line_id IN NUMBER := FND_API.G_MISS_NUM
130 ) IS
131
132 l_api_name CONSTANT VARCHAR2(30) := 'Create_Account_Dist';
133 l_api_version CONSTANT NUMBER := 1.0;
134
135 BEGIN
136
137 -- Standard Start of API savepoint
138
139 SAVEPOINT Create_Account_Dist_Pvt;
140
141
142 -- Standard call to check for call compatibility.
143
144 if not FND_API.Compatible_API_Call (l_api_version,
145 p_api_version,
146 l_api_name,
147 G_PKG_NAME)
148 then
149 raise FND_API.G_EXC_UNEXPECTED_ERROR;
150 end if;
151
152
153 -- Initialize message list if p_init_msg_list is set to TRUE
154
155 if FND_API.to_Boolean (p_init_msg_list) then
156 FND_MSG_PUB.initialize;
157 end if;
158
159
160 -- Call Private Function
161
162 PSB_WS_ACCT1.Create_Account_Dist
163 (p_api_version => 1.0,
164 p_validation_level => p_validation_level,
165 p_return_status => p_return_status,
166 p_account_line_id => p_account_line_id,
167 p_worksheet_id => p_worksheet_id,
168 p_check_spal_exists => p_check_spal_exists,
169 p_gl_cutoff_period => p_gl_cutoff_period,
170 p_allocrule_set_id => p_allocrule_set_id,
171 p_budget_calendar_id => p_budget_calendar_id,
172 p_rounding_factor => p_rounding_factor,
173 p_stage_set_id => p_stage_set_id,
174 p_budget_year_id => p_budget_year_id,
175 p_budget_group_id => p_budget_group_id,
176 p_ccid => p_ccid,
177 p_flex_mapping_set_id => p_flex_mapping_set_id,
178 p_map_accounts => p_map_accounts,
179 p_flex_code => p_flex_code,
180 p_concatenated_segments => p_concatenated_segments,
181 p_startdate_pp => p_startdate_pp,
182 p_template_id => p_template_id,
183 p_currency_code => p_currency_code,
184 p_balance_type => p_balance_type,
185 p_ytd_amount => p_ytd_amount,
186 p_distribute_flag => p_distribute_flag,
187 p_annual_fte => p_annual_fte,
188 p_period_amount => p_period_amount,
189 p_position_line_id => p_position_line_id,
190 p_element_set_id => p_element_set_id,
191 p_salary_account_line => p_salary_account_line,
192 p_service_package_id => p_service_package_id,
193 p_start_stage_seq => p_start_stage_seq,
194 p_current_stage_seq => p_current_stage_seq,
195 p_end_stage_seq => p_end_stage_seq,
196 p_copy_of_account_line_id => p_copy_of_account_line_id
197 );
198
199 -- Standard Check of p_commit
200
201 if FND_API.to_Boolean (p_commit) then
202 commit work;
203 end if;
204
205
206 -- Standard call to get message count and if count is 1, get message info
207
208 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
209 p_data => p_msg_data);
210
211
212 EXCEPTION
213
214 when FND_API.G_EXC_ERROR then
215 rollback to Create_Account_Dist_Pvt;
216 p_return_status := FND_API.G_RET_STS_ERROR;
217 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
218 p_data => p_msg_data);
219
220
221 when FND_API.G_EXC_UNEXPECTED_ERROR then
222 rollback to Create_Account_Dist_Pvt;
223 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
224 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
225 p_data => p_msg_data);
226
227
228 when OTHERS then
229 rollback to Create_Account_Dist_Pvt;
230 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
231
232 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
233 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
234 l_api_name);
235 end if;
236
237 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
238 p_data => p_msg_data);
239
240 END Create_Account_Dist;
241
242 /* ----------------------------------------------------------------------- */
243
244 PROCEDURE Create_Account_Dist
245 ( p_api_version IN NUMBER,
246 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
247 p_commit IN VARCHAR2 := FND_API.G_FALSE,
248 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
249 p_return_status OUT NOCOPY VARCHAR2,
250 p_msg_count OUT NOCOPY NUMBER,
251 p_msg_data OUT NOCOPY VARCHAR2,
252 p_worksheet_id IN NUMBER,
253 p_distribute_flag IN VARCHAR2 := FND_API.G_FALSE,
254 p_account_line_id IN NUMBER,
255 p_check_stages IN VARCHAR2 := FND_API.G_TRUE,
256 p_ytd_amount IN NUMBER,
257 p_annual_fte IN NUMBER := FND_API.G_MISS_NUM,
258 p_period_amount IN PSB_WS_ACCT1.g_prdamt_tbl_type,
259 p_budget_group_id IN NUMBER := FND_API.G_MISS_NUM,
260 p_service_package_id IN NUMBER := FND_API.G_MISS_NUM,
261 p_current_stage_seq IN NUMBER := FND_API.G_MISS_NUM,
262 p_copy_of_account_line_id IN NUMBER := FND_API.G_MISS_NUM
263 ) IS
264
265 l_api_name CONSTANT VARCHAR2(30) := 'Create_Account_Dist';
266 l_api_version CONSTANT NUMBER := 1.0;
267
268 BEGIN
269
270 -- Standard Start of API savepoint
271
272 SAVEPOINT Create_Account_Dist_Pvt;
273
274
275 -- Standard call to check for call compatibility.
276
277 if not FND_API.Compatible_API_Call (l_api_version,
278 p_api_version,
279 l_api_name,
280 G_PKG_NAME)
281 then
282 raise FND_API.G_EXC_UNEXPECTED_ERROR;
283 end if;
284
285
286 -- Initialize message list if p_init_msg_list is set to TRUE
287
288 if FND_API.to_Boolean (p_init_msg_list) then
289 FND_MSG_PUB.initialize;
290 end if;
291
292
293 -- Call Private Function
294
295 PSB_WS_ACCT1.Create_Account_Dist
296 (p_api_version => 1.0,
297 p_validation_level => p_validation_level,
298 p_return_status => p_return_status,
299 p_worksheet_id => p_worksheet_id,
300 p_distribute_flag => p_distribute_flag,
301 p_account_line_id => p_account_line_id,
302 p_check_stages => p_check_stages,
303 p_ytd_amount => p_ytd_amount,
304 p_annual_fte => p_annual_fte,
305 p_period_amount => p_period_amount,
306 p_budget_group_id => p_budget_group_id,
307 p_service_package_id => p_service_package_id,
308 p_current_stage_seq => p_current_stage_seq,
309 p_copy_of_account_line_id => p_copy_of_account_line_id);
310
311
312 -- Standard Check of p_commit
313
314 if FND_API.to_Boolean (p_commit) then
315 commit work;
316 end if;
317
318
319 -- Standard call to get message count and if count is 1, get message info
320
321 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
322 p_data => p_msg_data);
323
324
325 EXCEPTION
326
327 when FND_API.G_EXC_ERROR then
328 rollback to Create_Account_Dist_Pvt;
329 p_return_status := FND_API.G_RET_STS_ERROR;
330 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
331 p_data => p_msg_data);
332
333
334 when FND_API.G_EXC_UNEXPECTED_ERROR then
335 rollback to Create_Account_Dist_Pvt;
336 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
337 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
338 p_data => p_msg_data);
339
340
341 when OTHERS then
342 rollback to Create_Account_Dist_Pvt;
343 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
344
345 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
346 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
347 l_api_name);
348 end if;
349
350 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
351 p_data => p_msg_data);
352
353 END Create_Account_Dist;
354
355 /* ----------------------------------------------------------------------- */
356
357 PROCEDURE Revise_Account_Projections
358 ( p_api_version IN NUMBER,
359 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
360 p_commit IN VARCHAR2 := FND_API.G_FALSE,
361 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
362 p_return_status OUT NOCOPY VARCHAR2,
363 p_msg_count OUT NOCOPY NUMBER,
364 p_msg_data OUT NOCOPY VARCHAR2,
365 p_worksheet_id IN NUMBER,
366 p_parameter_id IN NUMBER
367 ) IS
368
369 l_api_name CONSTANT VARCHAR2(30) := 'Revise_Account_Projections';
370 l_api_version CONSTANT NUMBER := 1.0;
371
372 l_return_status VARCHAR2(1);
373 l_validation_status VARCHAR2(1);
374
375 BEGIN
376
377 -- Standard Start of API savepoint
378
379 SAVEPOINT Revise_Account_Projections_Pvt;
380
381
382 -- Standard call to check for call compatibility.
383
384 if not FND_API.Compatible_API_Call (l_api_version,
385 p_api_version,
386 l_api_name,
387 G_PKG_NAME)
388 then
389 raise FND_API.G_EXC_UNEXPECTED_ERROR;
390 end if;
391
392
393 -- Initialize message list if p_init_msg_list is set to TRUE
394
395 if FND_API.to_Boolean (p_init_msg_list) then
396 FND_MSG_PUB.initialize;
397 end if;
398
399 -- Enforce Concurrency Control
400
401 PSB_CONCURRENCY_CONTROL_PVT.Enforce_Concurrency_Control
402 (p_api_version => 1.0,
403 p_return_status => l_return_status,
404 p_concurrency_class => 'WORKSHEET_CREATION',
405 p_concurrency_entity_name => 'WORKSHEET',
406 p_concurrency_entity_id => p_worksheet_id);
407
408 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
409 raise FND_API.G_EXC_ERROR;
410 end if;
411
412 -- Call Private Function
413
414 PSB_WS_ACCT2.Revise_Account_Projections
415 (p_api_version => 1.0,
416 p_validation_level => p_validation_level,
417 p_return_status => l_return_status,
418 p_worksheet_id => p_worksheet_id,
419 p_parameter_id => p_parameter_id);
420
421 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
422 raise FND_API.G_EXC_ERROR;
423 end if;
424
425 PSB_WS_ACCT2.Create_Rollup_Totals
426 (p_api_version => 1.0,
427 p_return_status => l_return_status,
428 p_worksheet_id => p_worksheet_id);
429
430 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
431 raise FND_API.G_EXC_ERROR;
432 end if;
433
434 PSB_WORKSHEET.Apply_Constraints
435 (p_api_version => 1.0,
436 p_return_status => l_return_status,
437 p_validation_status => l_validation_status,
438 p_worksheet_id => p_worksheet_id);
439
440 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
441 raise FND_API.G_EXC_ERROR;
442 end if;
443
444 PSB_CONCURRENCY_CONTROL_PVT.Release_Concurrency_Control
445 (p_api_version => 1.0,
446 p_return_status => l_return_status,
447 p_concurrency_class => 'WORKSHEET_CREATION',
448 p_concurrency_entity_name => 'WORKSHEET',
449 p_concurrency_entity_id => p_worksheet_id);
450
451 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
452 RAISE FND_API.G_EXC_ERROR;
453 end if;
454
455
456 -- Standard Check of p_commit
457
458 if FND_API.to_Boolean (p_commit) then
459 commit work;
460 end if;
461
462
463 -- Standard call to get message count and if count is 1, get message info
464
465 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
466 p_data => p_msg_data);
467
468
469 EXCEPTION
470
471 when FND_API.G_EXC_ERROR then
472 rollback to Revise_Account_Projections_Pvt;
473 p_return_status := FND_API.G_RET_STS_ERROR;
474 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
475 p_data => p_msg_data);
476
477
478 when FND_API.G_EXC_UNEXPECTED_ERROR then
479 rollback to Revise_Account_Projections_Pvt;
480 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
481 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
482 p_data => p_msg_data);
483
484
485 when OTHERS then
486 rollback to Revise_Account_Projections_Pvt;
487 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488
489 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
490 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
491 l_api_name);
492 end if;
493
494 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
495 p_data => p_msg_data);
496
497 END Revise_Account_Projections;
498
499 /* ----------------------------------------------------------------------- */
500
501 PROCEDURE Update_GL_Balances
502 ( p_api_version IN NUMBER,
503 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
504 p_commit IN VARCHAR2 := FND_API.G_FALSE,
505 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
506 p_return_status OUT NOCOPY VARCHAR2,
507 p_msg_count OUT NOCOPY NUMBER,
508 p_msg_data OUT NOCOPY VARCHAR2,
509 p_worksheet_id IN NUMBER
510 ) IS
511
512 l_api_name CONSTANT VARCHAR2(30) := 'Update_GL_Balances';
513 l_api_version CONSTANT NUMBER := 1.0;
514 l_return_status VARCHAR2(1);
515
516 BEGIN
517
518 -- Standard Start of API savepoint
519
520 SAVEPOINT Update_GL_Balances_Pvt;
521
522
523 -- Standard call to check for call compatibility.
524
525 if not FND_API.Compatible_API_Call (l_api_version,
526 p_api_version,
527 l_api_name,
528 G_PKG_NAME)
529 then
530 raise FND_API.G_EXC_UNEXPECTED_ERROR;
531 end if;
532
533
534 -- Initialize message list if p_init_msg_list is set to TRUE
535
536 if FND_API.to_Boolean (p_init_msg_list) then
537 FND_MSG_PUB.initialize;
538 end if;
539
540
541 -- Call Private Function
542
543 PSB_WS_ACCT2.Update_GL_Balances
544 (p_api_version => 1.0,
545 p_validation_level => p_validation_level,
546 p_return_status => l_return_status,
547 p_worksheet_id => p_worksheet_id);
548
549 /* Bug 5172988 Start */
550 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
551 raise FND_API.G_EXC_ERROR;
552 END IF;
553
554 PSB_WS_ACCT2.Create_Rollup_Totals
555 (p_api_version => 1.0,
556 p_return_status => l_return_status,
557 p_worksheet_id => p_worksheet_id);
558
559 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
560 raise FND_API.G_EXC_ERROR;
561 END IF;
562 /* Bug 5172988 End */
563
564 -- Standard Check of p_commit
565
566 if FND_API.to_Boolean (p_commit) then
567 commit work;
568 end if;
569
570
571 -- Standard call to get message count and if count is 1, get message info
572
573 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
574 p_data => p_msg_data);
575
576
577 EXCEPTION
578
579 when FND_API.G_EXC_ERROR then
580 rollback to Update_GL_Balances_Pvt;
581 p_return_status := FND_API.G_RET_STS_ERROR;
582 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
583 p_data => p_msg_data);
584
585
586 when FND_API.G_EXC_UNEXPECTED_ERROR then
587 rollback to Update_GL_Balances_Pvt;
588 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
590 p_data => p_msg_data);
591
592
593 when OTHERS then
594 rollback to Update_GL_Balances_Pvt;
595 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
596
597 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
598 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
599 l_api_name);
600 end if;
601
602 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
603 p_data => p_msg_data);
604
605 END Update_GL_Balances;
606
607 /* ----------------------------------------------------------------------- */
608
609 PROCEDURE Create_Rollup_Totals
610 ( p_api_version IN NUMBER,
611 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
612 p_commit IN VARCHAR2 := FND_API.G_FALSE,
613 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
614 p_return_status OUT NOCOPY VARCHAR2,
615 p_msg_count OUT NOCOPY NUMBER,
616 p_msg_data OUT NOCOPY VARCHAR2,
617 p_worksheet_id IN NUMBER,
618 p_rounding_factor IN NUMBER := FND_API.G_MISS_NUM,
619 p_stage_set_id IN NUMBER := FND_API.G_MISS_NUM,
620 p_current_stage_seq IN NUMBER := FND_API.G_MISS_NUM,
621 p_set_of_books_id IN NUMBER := FND_API.G_MISS_NUM,
622 p_flex_code IN NUMBER := FND_API.G_MISS_NUM,
623 p_budget_group_id IN NUMBER := FND_API.G_MISS_NUM,
624 p_budget_calendar_id IN NUMBER := FND_API.G_MISS_NUM
625 ) IS
626
627 l_api_name CONSTANT VARCHAR2(30) := 'Create_Rollup_Totals';
628 l_api_version CONSTANT NUMBER := 1.0;
629
630 BEGIN
631
632 -- Standard Start of API savepoint
633
634 SAVEPOINT Create_Rollup_Totals_Pvt;
635
636
637 -- Standard call to check for call compatibility.
638
639 if not FND_API.Compatible_API_Call (l_api_version,
640 p_api_version,
641 l_api_name,
642 G_PKG_NAME)
643 then
644 raise FND_API.G_EXC_UNEXPECTED_ERROR;
645 end if;
646
647
648 -- Initialize message list if p_init_msg_list is set to TRUE
649
650 if FND_API.to_Boolean (p_init_msg_list) then
651 FND_MSG_PUB.initialize;
652 end if;
653
654 -- Call Private Function
655
656 PSB_WS_ACCT2.Create_Rollup_Totals
657 (p_api_version => 1.0,
658 p_validation_level => p_validation_level,
659 p_return_status => p_return_status,
660 p_worksheet_id => p_worksheet_id,
661 p_rounding_factor => p_rounding_factor,
662 p_stage_set_id => p_stage_set_id,
663 p_current_stage_seq => p_current_stage_seq,
664 p_set_of_books_id => p_set_of_books_id,
665 p_flex_code => p_flex_code,
666 p_budget_group_id => p_budget_group_id,
667 p_budget_calendar_id => p_budget_calendar_id);
668
669
670 -- Standard Check of p_commit
671
672 if FND_API.to_Boolean (p_commit) then
673 commit work;
674 end if;
675
676
677 -- Standard call to get message count and if count is 1, get message info
678
679 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
680 p_data => p_msg_data);
681
682
683 EXCEPTION
684
685 when FND_API.G_EXC_ERROR then
686 rollback to Create_Rollup_Totals_Pvt;
687 p_return_status := FND_API.G_RET_STS_ERROR;
688 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
689 p_data => p_msg_data);
690
691
692 when FND_API.G_EXC_UNEXPECTED_ERROR then
693 rollback to Create_Rollup_Totals_Pvt;
694 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
695 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
696 p_data => p_msg_data);
697
698
699 when OTHERS then
700 rollback to Create_Rollup_Totals_Pvt;
701 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
702
703 if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
704 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
705 l_api_name);
706 end if;
707
708 FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
709 p_data => p_msg_data);
710
711 END Create_Rollup_Totals;
712
713 /* ----------------------------------------------------------------------- */
714 /*===========================================================================+
715 | PROCEDURE Update_GL_Balances_CP |
716 +===========================================================================*/
717 --
718 -- This is the execution file for the concurrent program 'Update_GL_Balances_CP'
719 -- which runs 'Update GL Balances' program through the
720 -- Standard Report Submissions.
721 --
722 PROCEDURE Update_GL_Balances_CP
723 (
724 errbuf OUT NOCOPY VARCHAR2 ,
725 retcode OUT NOCOPY VARCHAR2 ,
726 p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM
727 )
728 IS
729 --
730 l_api_name CONSTANT VARCHAR2(30) := 'Update_GL_Balances_CP';
731 l_api_version CONSTANT NUMBER := 1.0 ;
732 --
733 l_error_api_name VARCHAR2(2000);
734 l_return_status VARCHAR2(1) ;
735 l_msg_count NUMBER ;
736 l_msg_data VARCHAR2(2000) ;
737 l_msg_index_out NUMBER;
738 --
739 BEGIN
740 --
741 PSB_CONCURRENCY_CONTROL_PUB.Enforce_Concurrency_Control
742 (p_api_version => 1.0,
743 p_return_status => l_return_status,
744 p_msg_count => l_msg_count,
745 p_msg_data => l_msg_data,
746 p_concurrency_class => 'WORKSHEET_CREATION',
747 p_concurrency_entity_name => 'WORKSHEET',
748 p_concurrency_entity_id => p_worksheet_id);
749
750 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
751 RAISE FND_API.G_EXC_ERROR;
752 end if;
753
754 PSB_WS_ACCT_PVT.Update_GL_Balances
755 (p_api_version => 1.0,
756 p_init_msg_list => FND_API.G_TRUE,
757 p_return_status => l_return_status,
758 p_msg_count => l_msg_count,
759 p_msg_data => l_msg_data,
760 p_worksheet_id => p_worksheet_id);
761
762
763 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
764 RAISE FND_API.G_EXC_ERROR;
765 END IF;
766
767 --
768 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
769 (p_api_version => 1.0,
770 p_return_status => l_return_status,
771 p_msg_count => l_msg_count,
772 p_msg_data => l_msg_data,
773 p_concurrency_class => 'WORKSHEET_CREATION',
774 p_concurrency_entity_name => 'WORKSHEET',
775 p_concurrency_entity_id => p_worksheet_id);
776
777 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
778 raise FND_API.G_EXC_ERROR;
779 end if;
780 --
781 PSB_MESSAGE_S.Print_Success;
782 retcode := 0 ;
783 --
784 COMMIT WORK;
785 --
786
787 EXCEPTION
788
789 WHEN FND_API.G_EXC_ERROR THEN
790 --
791 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
792 (p_api_version => 1.0,
793 p_return_status => l_return_status,
794 p_msg_count => l_msg_count,
795 p_msg_data => l_msg_data,
796 p_concurrency_class => 'WORKSHEET_CREATION',
797 p_concurrency_entity_name => 'WORKSHEET',
798 p_concurrency_entity_id => p_worksheet_id);
799
800 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
801 p_print_header => FND_API.G_TRUE );
802 retcode := 2 ;
803 COMMIT WORK ;
804 --
805 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
806 --
807 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
808 (p_api_version => 1.0,
809 p_return_status => l_return_status,
810 p_msg_count => l_msg_count,
811 p_msg_data => l_msg_data,
812 p_concurrency_class => 'WORKSHEET_CREATION',
813 p_concurrency_entity_name => 'WORKSHEET',
814 p_concurrency_entity_id => p_worksheet_id);
815
816 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
817 p_print_header => FND_API.G_TRUE );
818 retcode := 2 ;
819 COMMIT WORK ;
820 --
821 WHEN OTHERS THEN
822
823 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
824 (p_api_version => 1.0,
825 p_return_status => l_return_status,
826 p_msg_count => l_msg_count,
827 p_msg_data => l_msg_data,
828 p_concurrency_class => 'WORKSHEET_CREATION',
829 p_concurrency_entity_name => 'WORKSHEET',
830 p_concurrency_entity_id => p_worksheet_id);
831
832 --
833 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
834 --
835 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
836 l_api_name ) ;
837 END IF ;
838 --
839 l_return_status := FND_API.G_RET_STS_ERROR;
840
841 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
842 p_print_header => FND_API.G_TRUE );
843 --
844 retcode := 2 ;
845 COMMIT WORK ;
846 --
847 END Update_GL_Balances_CP ;
848
849
850 /*===========================================================================+
851 | PROCEDURE Create_Rollup_Totals_CP |
852 +===========================================================================*/
853 --
854 -- This is the execution file for the concurrent program 'Create_Rollup_Totals_CP'
855 -- which runs 'Create Rollup Totals' program through the
856 -- Standard Report Submissions.
857 --
858 PROCEDURE Create_Rollup_Totals_CP
859 (
860 errbuf OUT NOCOPY VARCHAR2 ,
861 retcode OUT NOCOPY VARCHAR2 ,
862 p_create_summary_totals IN VARCHAR2 ,
863 p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM
864 )
865 IS
866 --
867 l_api_name CONSTANT VARCHAR2(30) := 'Create_Rollup_Totals_CP';
868 l_api_version CONSTANT NUMBER := 1.0 ;
869 --
870 l_error_api_name VARCHAR2(2000);
871 l_return_status VARCHAR2(1) ;
872 l_msg_count NUMBER ;
873 l_msg_data VARCHAR2(2000) ;
874 l_msg_index_out NUMBER;
875 --
876 BEGIN
877
878 IF p_create_summary_totals = 'Y' THEN
879
880 PSB_CONCURRENCY_CONTROL_PUB.Enforce_Concurrency_Control
881 (p_api_version => 1.0,
882 p_return_status => l_return_status,
883 p_msg_count => l_msg_count,
884 p_msg_data => l_msg_data,
885 p_concurrency_class => 'WORKSHEET_CREATION',
886 p_concurrency_entity_name => 'WORKSHEET',
887 p_concurrency_entity_id => p_worksheet_id);
888
889 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
890 RAISE FND_API.G_EXC_ERROR;
891 end if;
892
893 PSB_WS_ACCT_PVT.Create_Rollup_Totals
894 (p_api_version => 1.0,
895 p_init_msg_list => FND_API.G_TRUE,
896 p_return_status => l_return_status,
897 p_msg_count => l_msg_count,
898 p_msg_data => l_msg_data,
899 p_worksheet_id => p_worksheet_id);
900
901
902 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
903 RAISE FND_API.G_EXC_ERROR;
904 END IF;
905 --
906
907 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
908 (p_api_version => 1.0,
909 p_return_status => l_return_status,
910 p_msg_count => l_msg_count,
911 p_msg_data => l_msg_data,
912 p_concurrency_class => 'WORKSHEET_CREATION',
913 p_concurrency_entity_name => 'WORKSHEET',
914 p_concurrency_entity_id => p_worksheet_id);
915
916 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
917 RAISE FND_API.G_EXC_ERROR;
918 end if;
919
920 ELSE
921
922 NULL;
923
924 END IF;
925
926 PSB_MESSAGE_S.Print_Success;
927 retcode := 0 ;
928 --
929 COMMIT WORK;
930 --
931 EXCEPTION
932
933 WHEN FND_API.G_EXC_ERROR THEN
934
935 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
936 (p_api_version => 1.0,
937 p_return_status => l_return_status,
938 p_msg_count => l_msg_count,
939 p_msg_data => l_msg_data,
940 p_concurrency_class => 'WORKSHEET_CREATION',
941 p_concurrency_entity_name => 'WORKSHEET',
942 p_concurrency_entity_id => p_worksheet_id);
943
944 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
945 p_print_header => FND_API.G_TRUE );
946 retcode := 2 ;
947 COMMIT WORK ;
948
949 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
950
951 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
952 (p_api_version => 1.0,
953 p_return_status => l_return_status,
954 p_msg_count => l_msg_count,
955 p_msg_data => l_msg_data,
956 p_concurrency_class => 'WORKSHEET_CREATION',
957 p_concurrency_entity_name => 'WORKSHEET',
958 p_concurrency_entity_id => p_worksheet_id);
959
960 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
961 p_print_header => FND_API.G_TRUE );
962 retcode := 2 ;
963 COMMIT WORK ;
964
965 WHEN OTHERS THEN
966
967 PSB_CONCURRENCY_CONTROL_PUB.Release_Concurrency_Control
968 (p_api_version => 1.0,
969 p_return_status => l_return_status,
970 p_msg_count => l_msg_count,
971 p_msg_data => l_msg_data,
972 p_concurrency_class => 'WORKSHEET_CREATION',
973 p_concurrency_entity_name => 'WORKSHEET',
974 p_concurrency_entity_id => p_worksheet_id);
975
976 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
977 --
978 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
979 l_api_name ) ;
980 END IF ;
981 --
982 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
983 p_print_header => FND_API.G_TRUE );
984 --
985 retcode := 2 ;
986 COMMIT WORK ;
987 --
988
989 END Create_Rollup_Totals_CP ;
990
991 /* ---------------------------------------------------------------------------------- */
992 --
993 -- This is the execution file for the concurrent program 'Revise_Account_Projections_CP'
994 --
995 PROCEDURE Revise_Account_Projections_CP
996 (
997 errbuf OUT NOCOPY VARCHAR2,
998 retcode OUT NOCOPY VARCHAR2,
999 p_worksheet_id IN NUMBER,
1000 p_parameter_id IN NUMBER
1001 ) IS
1002 --
1003 l_api_name CONSTANT VARCHAR2(30) := 'Revise_Account_Projections_CP';
1004 l_api_version CONSTANT NUMBER := 1.0 ;
1005 --
1006 l_error_api_name VARCHAR2(2000);
1007 l_return_status VARCHAR2(1);
1008 l_msg_count NUMBER;
1009 l_msg_data VARCHAR2(2000);
1010 l_msg_index_out NUMBER;
1011 --
1012 l_set_CP_status BOOLEAN := FALSE; -- Bug#4571412
1013 BEGIN
1014
1015 PSB_WS_ACCT_PVT.Revise_Account_Projections
1016 (p_api_version => 1.0,
1017 p_init_msg_list => FND_API.G_TRUE,
1018 p_return_status => l_return_status,
1019 p_msg_count => l_msg_count,
1020 p_msg_data => l_msg_data,
1021 p_worksheet_id => p_worksheet_id,
1022 p_parameter_id => p_parameter_id);
1023
1024 -- Bug#4675858
1025 -- Set the CP status to warning if
1026 -- Note updation had some problems.
1027 IF ( PSB_WS_ACCT1.g_soft_error_flag ) THEN
1028 --
1029 l_set_CP_status
1030 := FND_CONCURRENT.Set_Completion_Status
1031 (status => 'WARNING',
1032 message => NULL
1033 );
1034 --
1035 -- Reset the variable as it has to be checked in
1036 -- other packages also.
1037 PSB_WS_ACCT1.g_soft_error_flag := FALSE ;
1038 --
1039 END IF;
1040
1041 if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1042 raise FND_API.G_EXC_ERROR;
1043 end if;
1044
1045 PSB_MESSAGE_S.Print_Success;
1046 retcode := 0 ;
1047 --
1048 COMMIT WORK;
1049 --
1050 EXCEPTION
1051
1052 WHEN FND_API.G_EXC_ERROR THEN
1053
1054 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
1055 p_print_header => FND_API.G_TRUE );
1056 retcode := 2 ;
1057 COMMIT WORK ;
1058
1059 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1060
1061 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
1062 p_print_header => FND_API.G_TRUE );
1063 retcode := 2 ;
1064 COMMIT WORK ;
1065
1066 WHEN OTHERS THEN
1067
1068 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1069 --
1070 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1071 l_api_name ) ;
1072 END IF ;
1073 --
1074 PSB_MESSAGE_S.Print_Error ( p_mode => FND_FILE.LOG ,
1075 p_print_header => FND_API.G_TRUE );
1076 --
1077 retcode := 2 ;
1078 COMMIT WORK ;
1079 --
1080
1081 END Revise_Account_Projections_CP;
1082
1083 /* ----------------------------------------------------------------------- */
1084
1085 END PSB_WS_ACCT_PVT;