DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSB_WORKSHEET_PVT

Source


1 PACKAGE BODY PSB_WORKSHEET_PVT AS
2 /* $Header: PSBPWCMB.pls 120.10 2005/11/14 11:51:55 viraghun ship $ */
3 
4   G_PKG_NAME CONSTANT   VARCHAR2(30):= 'PSB_WORKSHEET_PVT';
5 
6 /* ----------------------------------------------------------------------- */
7 
8 PROCEDURE Create_WS_Line_Items
9 ( p_api_version       IN   NUMBER,
10   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
11   p_commit            IN   VARCHAR2 := FND_API.G_FALSE,
12   p_validation_level  IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
13   p_return_status     OUT  NOCOPY  VARCHAR2,
14   p_msg_count         OUT  NOCOPY  NUMBER,
15   p_msg_data          OUT  NOCOPY  VARCHAR2,
16   p_worksheet_id      IN   NUMBER
17 ) IS
18 
19   l_api_name          CONSTANT VARCHAR2(30)   := 'Create_WS_Line_Items';
20   l_api_version       CONSTANT NUMBER         := 1.0;
21 
22 BEGIN
23 
24   -- Standard Start of API savepoint
25 
26   SAVEPOINT     Create_WS_Line_Items_Pvt;
27 
28 
29   -- Standard call to check for call compatibility.
30 
31   if not FND_API.Compatible_API_Call (l_api_version,
32 				      p_api_version,
33 				      l_api_name,
34 				      G_PKG_NAME)
35   then
36     raise FND_API.G_EXC_UNEXPECTED_ERROR;
37   end if;
38 
39 
40   -- Initialize message list if p_init_msg_list is set to TRUE.
41 
42   if FND_API.to_Boolean (p_init_msg_list) then
43     FND_MSG_PUB.initialize;
44   end if;
45 
46 
47   -- Call Private Function
48 
49   PSB_WORKSHEET.Create_WS_Line_Items
50      (p_api_version => 1.0,
51       p_return_status => p_return_status,
52       p_worksheet_id => p_worksheet_id);
53 
54 
55   -- Standard check of p_commit.
56 
57   if FND_API.to_Boolean (p_commit) then
58     commit work;
59   end if;
60 
61 
62   -- Standard call to get message count and if count is 1, get message info.
63 
64   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
65 			     p_data  => p_msg_data);
66 
67 EXCEPTION
68 
69    when FND_API.G_EXC_ERROR then
70      rollback to Create_WS_Line_Items_Pvt;
71      p_return_status := FND_API.G_RET_STS_ERROR;
72 
73      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
74 				p_data  => p_msg_data);
75 
76    when FND_API.G_EXC_UNEXPECTED_ERROR then
77      rollback to Create_WS_Line_Items_Pvt;
78      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
79 
80      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
81 				p_data  => p_msg_data);
82 
83    when OTHERS then
84      rollback to Create_WS_Line_Items_Pvt;
85      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
86 
87      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
88        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
89 				l_api_name);
90      end if;
91 
92      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
93 				p_data  => p_msg_data);
94 
95 END Create_WS_Line_Items;
96 
97 /* ----------------------------------------------------------------------- */
98 
99 PROCEDURE Delete_WS_Line_Items
100 ( p_api_version       IN   NUMBER,
101   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
102   p_commit            IN   VARCHAR2 := FND_API.G_FALSE,
103   p_validation_level  IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
104   p_return_status     OUT  NOCOPY  VARCHAR2,
105   p_msg_count         OUT  NOCOPY  NUMBER,
106   p_msg_data          OUT  NOCOPY  VARCHAR2,
107   p_worksheet_id      IN   NUMBER,
108   p_global_worksheet  IN   VARCHAR2 := FND_API.G_TRUE
109 ) IS
110 
111   l_api_name          CONSTANT VARCHAR2(30)   := 'Delete_WS_Line_Items';
112   l_api_version       CONSTANT NUMBER         := 1.0;
113 
114 BEGIN
115 
116   -- Standard Start of API savepoint
117 
118   SAVEPOINT     Delete_WS_Line_Items_Pvt;
119 
120 
121   -- Standard call to check for call compatibility.
122 
123   if not FND_API.Compatible_API_Call (l_api_version,
124 				      p_api_version,
125 				      l_api_name,
126 				      G_PKG_NAME)
127   then
128     raise FND_API.G_EXC_UNEXPECTED_ERROR;
129   end if;
130 
131 
132   -- Initialize message list if p_init_msg_list is set to TRUE.
133 
134   if FND_API.to_Boolean (p_init_msg_list) then
135     FND_MSG_PUB.initialize;
136   end if;
137 
138 
139   -- Call Private Function
140 
141   PSB_WORKSHEET.Delete_WS_Line_Items
142      (p_api_version => 1.0,
143       p_return_status => p_return_status,
144       p_worksheet_id => p_worksheet_id,
145       p_global_worksheet => p_global_worksheet);
146 
147 
148   -- Standard check of p_commit.
149 
150   if FND_API.to_Boolean (p_commit) then
151     commit work;
152   end if;
153 
154 
155   -- Standard call to get message count and if count is 1, get message info.
156 
157   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
158 			     p_data  => p_msg_data);
159 
160 EXCEPTION
161 
162    when FND_API.G_EXC_ERROR then
163      rollback to Delete_WS_Line_Items_Pvt;
164      p_return_status := FND_API.G_RET_STS_ERROR;
165 
166      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
167 				p_data  => p_msg_data);
168 
169    when FND_API.G_EXC_UNEXPECTED_ERROR then
170      rollback to Delete_WS_Line_Items_Pvt;
171      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
172 
173      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
174 				p_data  => p_msg_data);
175 
176    when OTHERS then
177      rollback to Delete_WS_Line_Items_Pvt;
178      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
179 
180      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
181        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
182 				l_api_name);
183      end if;
184 
185      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
186 				p_data  => p_msg_data);
187 
188 END Delete_WS_Line_Items;
189 
190 /* ----------------------------------------------------------------------- */
191 
192 PROCEDURE Create_Worksheet
193 ( p_api_version                       IN   NUMBER,
194   p_init_msg_list                     IN   VARCHAR2 := FND_API.G_FALSE,
195   p_commit                            IN   VARCHAR2 := FND_API.G_FALSE,
196   p_validation_level                  IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
197   p_return_status                     OUT  NOCOPY  VARCHAR2,
198   p_msg_count                         OUT  NOCOPY  NUMBER,
199   p_msg_data                          OUT  NOCOPY  VARCHAR2,
200   p_budget_group_id                   IN   NUMBER,
201   p_budget_calendar_id                IN   NUMBER,
202   p_worksheet_type                    IN   VARCHAR2 := 'O',
203   p_name                              IN   VARCHAR2,
204   p_description                       IN   VARCHAR2,
205   p_ws_creation_complete              IN   VARCHAR2 := FND_API.G_MISS_CHAR,
206   p_stage_set_id                      IN   NUMBER,
207   p_current_stage_seq                 IN   NUMBER := FND_API.G_MISS_NUM,
208   p_global_worksheet_id               IN   NUMBER := FND_API.G_MISS_NUM,
209   p_global_worksheet_flag             IN   VARCHAR2 := FND_API.G_MISS_CHAR,
210   p_global_worksheet_option           IN   VARCHAR2 := FND_API.G_MISS_CHAR,
211   p_local_copy_flag                   IN   VARCHAR2 := FND_API.G_MISS_CHAR,
212   p_copy_of_worksheet_id              IN   NUMBER := FND_API.G_MISS_NUM,
213   p_freeze_flag                       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
214   p_budget_by_position                IN   VARCHAR2 := FND_API.G_MISS_CHAR,
215   p_use_revised_element_rates         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
216   p_num_proposed_years                IN   NUMBER := FND_API.G_MISS_NUM,
217   p_num_years_to_allocate             IN   NUMBER := FND_API.G_MISS_NUM,
218   p_rounding_factor                   IN   NUMBER := FND_API.G_MISS_NUM,
219   p_gl_cutoff_period                  IN   DATE := FND_API.G_MISS_DATE,
220   p_budget_version_id                 IN   NUMBER := FND_API.G_MISS_NUM,
221   p_gl_budget_set_id                  IN   NUMBER := FND_API.G_MISS_NUM,
222   p_include_stat_balance              IN   VARCHAR2 := FND_API.G_MISS_CHAR,
223   p_include_trans_balance             IN   VARCHAR2 := FND_API.G_MISS_CHAR,
224   p_include_adj_period                IN   VARCHAR2 := FND_API.G_MISS_CHAR,
225   p_data_extract_id                   IN   NUMBER := FND_API.G_MISS_NUM,
226   p_parameter_set_id                  IN   NUMBER := FND_API.G_MISS_NUM,
227   p_constraint_set_id                 IN   NUMBER := FND_API.G_MISS_NUM,
228   p_allocrule_set_id                  IN   NUMBER := FND_API.G_MISS_NUM,
229   p_date_submitted                    IN   DATE := FND_API.G_MISS_DATE,
230   p_submitted_by                      IN   NUMBER := FND_API.G_MISS_NUM,
231   p_attribute1                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
232   p_attribute2                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
233   p_attribute3                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
234   p_attribute4                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
235   p_attribute5                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
236   p_attribute6                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
237   p_attribute7                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
238   p_attribute8                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
239   p_attribute9                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
240   p_attribute10                       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
241   p_context                           IN   VARCHAR2 := FND_API.G_MISS_CHAR,
242   p_create_non_pos_line_items         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
243   p_apply_element_parameters          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
244   p_apply_position_parameters         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
245   p_create_positions                  IN   VARCHAR2 := FND_API.G_MISS_CHAR,
246   p_create_summary_totals             IN   VARCHAR2 := FND_API.G_MISS_CHAR,
247   p_apply_constraints                 IN   VARCHAR2 := FND_API.G_MISS_CHAR,
248   p_flex_mapping_set_id               IN   NUMBER := FND_API.G_MISS_NUM,
249   p_include_gl_commit_balance         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
250   p_include_gl_oblig_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
251   p_include_gl_other_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
252   p_include_cbc_commit_balance        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
253   p_include_cbc_oblig_balance         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
254   p_include_cbc_budget_balance        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
255   p_federal_ws_flag                   IN   VARCHAR2 := FND_API.G_MISS_CHAR,
256   /* bug no 4725091 */
257   p_include_gl_forwd_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
258   p_worksheet_id                      OUT  NOCOPY  NUMBER
259 ) IS
260 
261   l_api_name                   CONSTANT VARCHAR2(30)   := 'Create_Worksheet';
262   l_api_version                CONSTANT NUMBER         := 1.0;
263 
264 BEGIN
265 
266   -- Standard Start of API savepoint
267 
268   SAVEPOINT     Create_Worksheet_Pvt;
269 
270 
271   -- Standard call to check for call compatibility.
272 
273   if not FND_API.Compatible_API_Call (l_api_version,
274 				      p_api_version,
275 				      l_api_name,
276 				      G_PKG_NAME)
277   then
278     raise FND_API.G_EXC_UNEXPECTED_ERROR;
279   end if;
280 
281 
282   -- Initialize message list if p_init_msg_list is set to TRUE.
283 
284   if FND_API.to_Boolean (p_init_msg_list) then
285     FND_MSG_PUB.initialize;
286   end if;
287 
288 
289   -- Call Private Function
290 
291   PSB_WORKSHEET.Create_Worksheet
292      (p_api_version => 1.0,
293       p_validation_level => p_validation_level,
294       p_return_status => p_return_status,
295       p_budget_group_id => p_budget_group_id,
296       p_budget_calendar_id => p_budget_calendar_id,
297       p_worksheet_type => p_worksheet_type,
298       p_name => p_name,
299       p_description => p_description,
300       p_ws_creation_complete => p_ws_creation_complete,
301       p_stage_set_id => p_stage_set_id,
302       p_current_stage_seq => p_current_stage_seq,
303       p_global_worksheet_id => p_global_worksheet_id,
304       p_global_worksheet_flag => p_global_worksheet_flag,
305       p_global_worksheet_option => p_global_worksheet_option,
306       p_local_copy_flag => p_local_copy_flag,
307       p_copy_of_worksheet_id => p_copy_of_worksheet_id,
308       p_freeze_flag => p_freeze_flag,
309       p_budget_by_position => p_budget_by_position,
310       p_use_revised_element_rates => p_use_revised_element_rates,
311       p_num_proposed_years => p_num_proposed_years,
312       p_num_years_to_allocate => p_num_years_to_allocate,
313       p_rounding_factor => p_rounding_factor,
314       p_gl_cutoff_period => p_gl_cutoff_period,
315       p_budget_version_id => p_budget_version_id,
316       p_gl_budget_set_id => p_gl_budget_set_id,
317       p_include_stat_balance => p_include_stat_balance,
318       p_include_trans_balance => p_include_trans_balance,
319       p_include_adj_period => p_include_adj_period,
320       p_data_extract_id => p_data_extract_id,
321       p_parameter_set_id => p_parameter_set_id,
322       p_constraint_set_id => p_constraint_set_id,
323       p_allocrule_set_id => p_allocrule_set_id,
324       p_date_submitted => p_date_submitted,
325       p_submitted_by => p_submitted_by,
326       p_attribute1 => p_attribute1,
327       p_attribute2 => p_attribute2,
328       p_attribute3 => p_attribute3,
329       p_attribute4 => p_attribute4,
330       p_attribute5 => p_attribute5,
331       p_attribute6 => p_attribute6,
332       p_attribute7 => p_attribute7,
333       p_attribute8 => p_attribute8,
334       p_attribute9 => p_attribute9,
335       p_attribute10 => p_attribute10,
336       p_context => p_context,
337       p_worksheet_id => p_worksheet_id,
338       p_create_non_pos_line_items => p_create_non_pos_line_items,
339       p_apply_element_parameters  => p_apply_element_parameters,
340       p_apply_position_parameters => p_apply_position_parameters,
341       p_create_positions          => p_create_positions,
342       p_create_summary_totals     => p_create_summary_totals,
343       p_apply_constraints         => p_apply_constraints,
344       p_flex_mapping_set_id       => p_flex_mapping_set_id,
345       p_include_gl_commit_balance => p_include_gl_commit_balance,
346       p_include_gl_oblig_balance  => p_include_gl_oblig_balance,
347       p_include_gl_other_balance  => p_include_gl_other_balance,
348       p_include_cbc_commit_balance => p_include_cbc_commit_balance,
349       p_include_cbc_oblig_balance => p_include_cbc_oblig_balance,
350       p_include_cbc_budget_balance => p_include_cbc_budget_balance,
351       /* For Bug 3157960, added the federal ws flag */
352       p_federal_ws_flag => p_federal_ws_flag,
353       /* bug no 4725091 */
354       p_include_gl_forwd_balance => p_include_gl_forwd_balance);
355 
356   -- Standard check of p_commit.
357 
358   if FND_API.to_Boolean (p_commit) then
359     commit work;
360   end if;
361 
362 
363   -- Standard call to get message count and if count is 1, get message info.
364 
365   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
366 			     p_data  => p_msg_data);
367 
368 EXCEPTION
369 
370    when FND_API.G_EXC_ERROR then
371      rollback to Create_Worksheet_Pvt;
372      p_return_status := FND_API.G_RET_STS_ERROR;
373 
374      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
375 				p_data  => p_msg_data);
376 
377    when FND_API.G_EXC_UNEXPECTED_ERROR then
378      rollback to Create_Worksheet_Pvt;
379      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380 
381      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
382 				p_data  => p_msg_data);
383 
384    when OTHERS then
385      rollback to Create_Worksheet_Pvt;
386      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
387 
388      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
389        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
390 				l_api_name);
391      end if;
392 
393      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
394 				p_data  => p_msg_data);
395 
396 END Create_Worksheet;
397 
398 /* ----------------------------------------------------------------------- */
399 
400 PROCEDURE Update_Worksheet
401 ( p_api_version                       IN   NUMBER,
402   p_init_msg_list                     IN   VARCHAR2 := FND_API.G_FALSE,
403   p_commit                            IN   VARCHAR2 := FND_API.G_FALSE,
404   p_validation_level                  IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
405   p_return_status                     OUT  NOCOPY  VARCHAR2,
406   p_msg_count                         OUT  NOCOPY  NUMBER,
407   p_msg_data                          OUT  NOCOPY  VARCHAR2,
408   p_worksheet_id                      IN   NUMBER,
409   p_worksheet_type                    IN   VARCHAR2 := FND_API.G_MISS_CHAR,
410   p_description                       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
411   p_ws_creation_complete              IN   VARCHAR2 := FND_API.G_MISS_CHAR,
412   p_global_worksheet_id               IN   NUMBER := FND_API.G_MISS_NUM,
413   p_current_stage_seq                 IN   NUMBER := FND_API.G_MISS_NUM,
414   p_local_copy_flag                   IN   VARCHAR2 := FND_API.G_MISS_CHAR,
415   p_copy_of_worksheet_id              IN   NUMBER := FND_API.G_MISS_NUM,
416   p_freeze_flag                       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
417   p_use_revised_element_rates         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
418   /* Bug # 3083970 */
419   p_num_proposed_years                IN   NUMBER := FND_API.G_MISS_NUM,
420   p_rounding_factor                   IN   NUMBER := FND_API.G_MISS_NUM,
421   /* End bug */
422   p_date_submitted                    IN   DATE := FND_API.G_MISS_DATE,
423   p_submitted_by                      IN   NUMBER := FND_API.G_MISS_NUM,
424   p_attribute1                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
425   p_attribute2                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
426   p_attribute3                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
427   p_attribute4                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
428   p_attribute5                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
429   p_attribute6                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
430   p_attribute7                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
431   p_attribute8                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
432   p_attribute9                        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
433   p_attribute10                       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
434   p_context                           IN   VARCHAR2 := FND_API.G_MISS_CHAR,
435   p_create_non_pos_line_items         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
436   p_apply_element_parameters          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
437   p_apply_position_parameters         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
438   p_create_positions                  IN   VARCHAR2 := FND_API.G_MISS_CHAR,
439   p_create_summary_totals             IN   VARCHAR2 := FND_API.G_MISS_CHAR,
440   p_apply_constraints                 IN   VARCHAR2 := FND_API.G_MISS_CHAR,
441   p_include_gl_commit_balance         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
442   p_include_gl_oblig_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
443   p_include_gl_other_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR,
444   p_include_cbc_commit_balance        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
445   p_include_cbc_oblig_balance         IN   VARCHAR2 := FND_API.G_MISS_CHAR,
446   p_include_cbc_budget_balance        IN   VARCHAR2 := FND_API.G_MISS_CHAR,
447   /* For Bug No. 2312657 : Start */
448   p_gl_cutoff_period                  IN   DATE := NULL,
449   p_gl_budget_set_id                  IN   NUMBER := NULL,
450   /* For Bug No. 2312657 : End */
451   p_federal_ws_flag                   IN   VARCHAR2 := FND_API.G_MISS_CHAR,
452   /* bug no 4725091 */
453   p_include_gl_forwd_balance          IN   VARCHAR2 := FND_API.G_MISS_CHAR
454 ) IS
455 
456   l_api_name                   CONSTANT VARCHAR2(30)   := 'Update_Worksheet';
457   l_api_version                CONSTANT NUMBER         := 1.0;
458 
459 BEGIN
460 
461   -- Standard Start of API savepoint
462 
463   SAVEPOINT     Update_Worksheet_Pvt;
464 
465 
466   -- Standard call to check for call compatibility.
467 
468   if not FND_API.Compatible_API_Call (l_api_version,
469 				      p_api_version,
470 				      l_api_name,
471 				      G_PKG_NAME)
472   then
473     raise FND_API.G_EXC_UNEXPECTED_ERROR;
474   end if;
475 
476 
477   -- Initialize message list if p_init_msg_list is set to TRUE.
478 
479   if FND_API.to_Boolean (p_init_msg_list) then
480     FND_MSG_PUB.initialize;
481   end if;
482 
483 
484   -- Call Private Function
485 
486   PSB_WORKSHEET.Update_Worksheet
487      (p_api_version => 1.0,
488       p_validation_level => p_validation_level,
489       p_return_status => p_return_status,
490       p_worksheet_id => p_worksheet_id,
491       p_worksheet_type => p_worksheet_type,
492       p_description => p_description,
493       p_ws_creation_complete => p_ws_creation_complete,
494       p_global_worksheet_id => p_global_worksheet_id,
495       p_current_stage_seq => p_current_stage_seq,
496       p_local_copy_flag => p_local_copy_flag,
497       p_copy_of_worksheet_id => p_copy_of_worksheet_id,
498       p_freeze_flag => p_freeze_flag,
499       p_use_revised_element_rates => p_use_revised_element_rates,
500       /* Bug # 3083970 */
501       p_num_proposed_years => p_num_proposed_years,
502       p_rounding_factor => p_rounding_factor,
503       /* End bug */
504       p_date_submitted => p_date_submitted,
505       p_submitted_by => p_submitted_by,
506       p_attribute1 => p_attribute1,
507       p_attribute2 => p_attribute2,
508       p_attribute3 => p_attribute3,
509       p_attribute4 => p_attribute4,
510       p_attribute5 => p_attribute5,
511       p_attribute6 => p_attribute6,
512       p_attribute7 => p_attribute7,
513       p_attribute8 => p_attribute8,
514       p_attribute9 => p_attribute9,
515       p_attribute10 => p_attribute10,
516       p_context => p_context,
517       p_create_non_pos_line_items => p_create_non_pos_line_items,
518       p_apply_element_parameters  => p_apply_element_parameters,
519       p_apply_position_parameters => p_apply_position_parameters,
520       p_create_positions          => p_create_positions,
521       p_create_summary_totals     => p_create_summary_totals,
522       p_apply_constraints         => p_apply_constraints,
523       p_include_gl_commit_balance => p_include_gl_commit_balance,
524       p_include_gl_oblig_balance  => p_include_gl_oblig_balance,
525       p_include_gl_other_balance  => p_include_gl_other_balance,
526       p_include_cbc_commit_balance => p_include_cbc_commit_balance,
527       p_include_cbc_oblig_balance => p_include_cbc_oblig_balance,
528       p_include_cbc_budget_balance => p_include_cbc_budget_balance,
529      /* For Bug No. 2312657 : Start */
530       p_gl_cutoff_period           => p_gl_cutoff_period,
531       p_gl_budget_set_id           => p_gl_budget_set_id,
532       /* For Bug No. 2312657 : End */
533       /* For Bug No. 3157960, added federal_ws_flag */
534       p_federal_ws_flag            => p_federal_ws_flag,
535       /* bug no 4725091 */
536       p_include_gl_forwd_balance   => p_include_gl_forwd_balance
537       );
538 
539   -- Standard check of p_commit.
540 
541   if FND_API.to_Boolean (p_commit) then
542     commit work;
543   end if;
544 
545 
546   -- Standard call to get message count and if count is 1, get message info.
547 
548   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
549 			     p_data  => p_msg_data);
550 
551 EXCEPTION
552 
553    when FND_API.G_EXC_ERROR then
554      rollback to Update_Worksheet_Pvt;
555      p_return_status := FND_API.G_RET_STS_ERROR;
556 
557      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
558 				p_data  => p_msg_data);
559 
560    when FND_API.G_EXC_UNEXPECTED_ERROR then
561      rollback to Update_Worksheet_Pvt;
562      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563 
564      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
565 				p_data  => p_msg_data);
566 
567    when OTHERS then
568      rollback to Update_Worksheet_Pvt;
569      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
570 
571      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
572        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
573 				l_api_name);
574      end if;
575 
576      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
577 				p_data  => p_msg_data);
578 
579 END Update_Worksheet;
580 
581 /* ----------------------------------------------------------------------- */
582 
583 PROCEDURE Delete_Worksheet
584 ( p_api_version    IN   NUMBER,
585   p_init_msg_list  IN   VARCHAR2 := FND_API.G_FALSE,
586   p_commit         IN   VARCHAR2 := FND_API.G_FALSE,
587   p_return_status  OUT  NOCOPY  VARCHAR2,
588   p_msg_count      OUT  NOCOPY  NUMBER,
589   p_msg_data       OUT  NOCOPY  VARCHAR2,
590   p_worksheet_id   IN   NUMBER
591 ) IS
592 
593   l_api_name       CONSTANT VARCHAR2(30)   := 'Delete_Worksheet';
594   l_api_version    CONSTANT NUMBER         := 1.0;
595 
596 BEGIN
597 
598   -- Standard Start of API savepoint
599 
600   SAVEPOINT     Delete_Worksheet_Pvt;
601 
602 
603   -- Standard call to check for call compatibility.
604 
605   if not FND_API.Compatible_API_Call (l_api_version,
606 				      p_api_version,
607 				      l_api_name,
608 				      G_PKG_NAME)
609   then
610     raise FND_API.G_EXC_UNEXPECTED_ERROR;
611   end if;
612 
613 
614   -- Initialize message list if p_init_msg_list is set to TRUE.
615 
616   if FND_API.to_Boolean (p_init_msg_list) then
617     FND_MSG_PUB.initialize;
618   end if;
619 
620 
621   -- Call Private Function
622 
623   PSB_WORKSHEET.Delete_Worksheet
624      (p_api_version => 1.0,
625       p_return_status => p_return_status,
626       p_worksheet_id => p_worksheet_id);
627 
628 
629   -- Standard check of p_commit.
630 
631   if FND_API.to_Boolean (p_commit) then
632     commit work;
633   end if;
634 
635 
636   -- Standard call to get message count and if count is 1, get message info.
637 
638   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
639 			     p_data  => p_msg_data);
640 
641 EXCEPTION
642 
643    when FND_API.G_EXC_ERROR then
644      rollback to Delete_Worksheet_Pvt;
645      p_return_status := FND_API.G_RET_STS_ERROR;
646 
647      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
648 				p_data  => p_msg_data);
649 
650 
651    when FND_API.G_EXC_UNEXPECTED_ERROR then
652      rollback to Delete_Worksheet_Pvt;
653      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654 
655      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
656 				p_data  => p_msg_data);
657 
658 
659    when OTHERS then
660      rollback to Delete_Worksheet_Pvt;
661      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
662 
663      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
664        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
665 				l_api_name);
666      end if;
667 
668      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
669 				p_data  => p_msg_data);
670 
671 
672 END Delete_Worksheet;
673 
674 /* ----------------------------------------------------------------------- */
675 
676 PROCEDURE Apply_Constraints
677 ( p_api_version               IN   NUMBER,
678   p_init_msg_list             IN   VARCHAR2 := FND_API.G_FALSE,
679   p_commit                    IN   VARCHAR2 := FND_API.G_FALSE,
680   p_validation_level          IN   NUMBER  :=  FND_API.G_VALID_LEVEL_NONE,
681   p_return_status             OUT  NOCOPY  VARCHAR2,
682   p_msg_count                 OUT  NOCOPY  NUMBER,
683   p_msg_data                  OUT  NOCOPY  VARCHAR2,
684   p_validation_status         OUT  NOCOPY  VARCHAR2,
685   p_worksheet_id              IN   NUMBER,
686   p_budget_group_id           IN   NUMBER := FND_API.G_MISS_NUM,
687   p_flex_code                 IN   NUMBER := FND_API.G_MISS_NUM,
688   p_func_currency             IN   VARCHAR2 := FND_API.G_MISS_CHAR,
689   p_global_worksheet_id       IN   NUMBER := FND_API.G_MISS_NUM,
690   p_constraint_set_id         IN   NUMBER := FND_API.G_MISS_NUM,
691   p_constraint_set_name       IN   VARCHAR2 := FND_API.G_MISS_CHAR,
692   p_constraint_set_threshold  IN   NUMBER := FND_API.G_MISS_NUM,
693   p_budget_calendar_id        IN   NUMBER := FND_API.G_MISS_NUM,
694   p_data_extract_id           IN   NUMBER := FND_API.G_MISS_NUM,
695   p_business_group_id         IN   NUMBER := FND_API.G_MISS_NUM,
696   p_budget_by_position        IN   VARCHAR2 := FND_API.G_MISS_CHAR
697 ) IS
698 
699   l_api_name                  CONSTANT VARCHAR2(30)   := 'Apply_Constraints';
700   l_api_version               CONSTANT NUMBER         := 1.0;
701 
702 BEGIN
703 
704   -- Standard Start of API savepoint
705 
706   SAVEPOINT     Apply_Constraints_Pvt;
707 
708 
709   -- Standard call to check for call compatibility.
710 
711   if not FND_API.Compatible_API_Call (l_api_version,
712 				      p_api_version,
713 				      l_api_name,
714 				      G_PKG_NAME)
715   then
716     raise FND_API.G_EXC_UNEXPECTED_ERROR;
717 
718   end if;
719 
720 
721   -- Initialize message list if p_init_msg_list is set to TRUE.
722 
723   if FND_API.to_Boolean (p_init_msg_list) then
724     FND_MSG_PUB.initialize;
725   end if;
726 
727 
728   -- Call Private Function
729 
730   PSB_WORKSHEET.Apply_Constraints
731      (p_api_version => 1.0,
732       p_validation_level => p_validation_level,
733       p_return_status => p_return_status,
734       p_validation_status => p_validation_status,
735       p_worksheet_id => p_worksheet_id,
736       p_budget_group_id => p_budget_group_id,
737       p_flex_code => p_flex_code,
738       p_func_currency => p_func_currency,
739       p_global_worksheet_id => p_global_worksheet_id,
740       p_constraint_set_id => p_constraint_set_id,
741       p_constraint_set_name => p_constraint_set_name,
742       p_constraint_set_threshold => p_constraint_set_threshold,
743       p_budget_calendar_id => p_budget_calendar_id,
744       p_data_extract_id => p_data_extract_id,
745       p_business_group_id => p_business_group_id,
746       p_budget_by_position => p_budget_by_position);
747 
748 
749   -- Standard check of p_commit.
750 
751   if FND_API.to_Boolean (p_commit) then
752     commit work;
753   end if;
754 
755 
756   -- Standard call to get message count and if count is 1, get message info.
757 
758   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
759 			     p_data  => p_msg_data);
760 
761 EXCEPTION
762 
763    when FND_API.G_EXC_ERROR then
764      rollback to Apply_Constraints_Pvt;
765      p_return_status := FND_API.G_RET_STS_ERROR;
766 
767      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
768 				p_data  => p_msg_data);
769 
770 
771    when FND_API.G_EXC_UNEXPECTED_ERROR then
772      rollback to Apply_Constraints_Pvt;
773      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
774 
775      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
776 				p_data  => p_msg_data);
777 
778 
779    when OTHERS then
780      rollback to Apply_Constraints_Pvt;
781      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
782 
783      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
784        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
785 				l_api_name);
786      end if;
787 
788      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
789 				p_data  => p_msg_data);
790 
791 
792 END Apply_Constraints;
793 
794 /* ----------------------------------------------------------------------- */
795 
796 PROCEDURE Validate_Entity_Set
797 ( p_api_version        IN   NUMBER,
798   p_init_msg_list      IN   VARCHAR2 := FND_API.G_FALSE,
799   p_validation_level   IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
800   p_return_status      OUT  NOCOPY  VARCHAR2,
801   p_msg_count          OUT  NOCOPY  NUMBER,
802   p_msg_data           OUT  NOCOPY  VARCHAR2,
803   p_data_extract_id    IN   NUMBER,
804   p_parameter_set_id   IN   NUMBER,
805   p_constraint_set_id  IN   NUMBER
806 ) IS
807 
808   l_api_name           CONSTANT VARCHAR2(30)   := 'Validate_Entity_Set';
809   l_api_version        CONSTANT NUMBER         := 1.0;
810 
811 BEGIN
812 
813   -- Standard call to check for call compatibility.
814 
815   if not FND_API.Compatible_API_Call (l_api_version,
816 				      p_api_version,
817 				      l_api_name,
818 				      G_PKG_NAME)
819   then
820     raise FND_API.G_EXC_UNEXPECTED_ERROR;
821 
822   end if;
823 
824 
825   -- Initialize message list if p_init_msg_list is set to TRUE.
826 
827   if FND_API.to_Boolean (p_init_msg_list) then
828     FND_MSG_PUB.initialize;
829   end if;
830 
831 
832   -- Call Private Function
833 
834   PSB_WORKSHEET.Validate_Entity_Set
835      (p_api_version => 1.0,
836       p_validation_level => p_validation_level,
837       p_return_status => p_return_status,
838       p_data_extract_id => p_data_extract_id,
839       p_parameter_set_id => p_parameter_set_id,
840       p_constraint_set_id => p_constraint_set_id);
841 
842 
843   -- Standard call to get message count and if count is 1, get message info.
844 
845   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
846 			     p_data  => p_msg_data);
847 
848 EXCEPTION
849 
850    when FND_API.G_EXC_ERROR then
851      p_return_status := FND_API.G_RET_STS_ERROR;
852 
853      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
854 				p_data  => p_msg_data);
855 
856 
857    when FND_API.G_EXC_UNEXPECTED_ERROR then
858      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
859 
860      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
861 				p_data  => p_msg_data);
862 
863 
864    when OTHERS then
865      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
866 
867      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
868        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
869 				l_api_name);
870      end if;
871 
872      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
873 				p_data  => p_msg_data);
874 
875 
876 END Validate_Entity_Set;
877 
878 /* ----------------------------------------------------------------------- */
879 
880 PROCEDURE Delete_WPL
881 ( p_api_version       IN   NUMBER,
882   p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
883   p_validation_level  IN   NUMBER := FND_API.G_VALID_LEVEL_NONE,
884   p_return_status     OUT  NOCOPY  VARCHAR2,
885   p_msg_count         OUT  NOCOPY  NUMBER,
886   p_msg_data          OUT  NOCOPY  VARCHAR2,
887   p_worksheet_id      IN   NUMBER,
888   p_position_line_id  IN   NUMBER
889 ) IS
890 
891   l_api_name          CONSTANT VARCHAR2(30)   := 'Delete_WPL';
892   l_api_version       CONSTANT NUMBER         := 1.0;
893 
894 BEGIN
895 
896   -- Standard Start of API savepoint
897 
898   SAVEPOINT     Delete_WPL_Pvt;
899 
900   -- Standard call to check for call compatibility.
901 
902   if not FND_API.Compatible_API_Call (l_api_version,
903 				      p_api_version,
904 				      l_api_name,
905 				      G_PKG_NAME)
906   then
907     raise FND_API.G_EXC_UNEXPECTED_ERROR;
908 
909   end if;
910 
911 
912   -- Initialize message list if p_init_msg_list is set to TRUE.
913 
914   if FND_API.to_Boolean (p_init_msg_list) then
915     FND_MSG_PUB.initialize;
916   end if;
917 
918 
919   -- Call Private Function
920 
921   PSB_WORKSHEET.Delete_WPL
922      (p_api_version => 1.0,
923       p_validation_level => p_validation_level,
924       p_return_status => p_return_status,
925       p_worksheet_id => p_worksheet_id,
926       p_position_line_id => p_position_line_id);
927 
928 
929   -- Standard call to get message count and if count is 1, get message info.
930 
931   FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
932 			     p_data  => p_msg_data);
933 
934 EXCEPTION
935 
936    when FND_API.G_EXC_ERROR then
937      rollback to Delete_WPL_Pvt;
938      p_return_status := FND_API.G_RET_STS_ERROR;
939 
940      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
941 				p_data  => p_msg_data);
942 
943 
944    when FND_API.G_EXC_UNEXPECTED_ERROR then
945      rollback to Delete_WPL_Pvt;
946      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
947 
948      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
949 				p_data  => p_msg_data);
950 
951 
952    when OTHERS then
953      rollback to Delete_WPL_Pvt;
954      p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
955 
956      if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
957        FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
958 				l_api_name);
959      end if;
960 
961      FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
962 				p_data  => p_msg_data);
963 
964 
965 END Delete_WPL;
966 
967 /*===========================================================================+
968  |                   PROCEDURE Create_Worksheet_Line_Items_CP                |
969  +===========================================================================*/
970 --
971 -- This is the execution file for the concurrent program 'Create Worksheet
972 -- Line Items '
973 --
974 PROCEDURE Create_Worksheet_Line_Items_CP
975 (
976   errbuf                      OUT  NOCOPY      VARCHAR2  ,
977   retcode                     OUT  NOCOPY      VARCHAR2  ,
978   --
979   p_worksheet_id              IN       NUMBER
980 )
981 IS
982   l_api_name       CONSTANT VARCHAR2(30)   := 'Create_Worksheet_Line_Items_CP';
983   l_api_version    CONSTANT NUMBER         :=  1.0 ;
984   --
985   l_error_api_name          VARCHAR2(2000);
986   l_return_status           VARCHAR2(1) ;
987   l_msg_count               NUMBER ;
988   l_msg_data                VARCHAR2(2000) ;
989   l_msg_index_out           NUMBER;
990   l_name                    VARCHAR2(80);
991   l_data_extract_id         NUMBER;
992 
993   l_validation_status       VARCHAR2(1) ;
994   l_rep_req_id              NUMBER;
995   l_reqid                   NUMBER;
996 
997   -- Bug 3458191: Add a new variable for caching
998   l_global_worksheet_id     NUMBER;
999 
1000   /* Bug 3458191: Comment out the following since they are longer used.
1001   l_root_budget_group_id    NUMBER;
1002   l_account_set_id          NUMBER;
1003 
1004   cursor c_BG is
1005     select nvl(b.data_extract_id, b.global_data_extract_id) data_extract_id,
1006            nvl(a.root_budget_group_id, a.budget_group_id) root_budget_group_id
1007       from PSB_BUDGET_GROUPS_V a,
1008            PSB_WORKSHEETS_V b
1009      where a.budget_group_id = b.budget_group_id
1010        and b.worksheet_id = p_worksheet_id;
1011   */
1012 
1013 BEGIN
1014 
1015   /* Bug 3458191 start: Get the global worksheet id and data extract id */
1016   SELECT nvl(global_worksheet_id, worksheet_id) global_worksheet_id,
1017          data_extract_id
1018   INTO   l_global_worksheet_id,
1019          l_data_extract_id
1020   FROM   psb_worksheets
1021   WHERE  worksheet_id = p_worksheet_id;
1022 
1023   -- Do not need to query if it's a global worksheet
1024   IF p_worksheet_id <> l_global_worksheet_id THEN
1025     SELECT data_extract_id INTO l_data_extract_id
1026     FROM   psb_worksheets
1027     WHERE  worksheet_id = l_global_worksheet_id ;
1028   END IF;
1029   /* Bug 3458191 end */
1030 
1031   /* Bug 3458191: Comment out the following calls because they are called in
1032      Validate_Accounts_CP
1033 
1034   for c_BG_Rec in c_BG loop
1035     l_data_extract_id := c_BG_Rec.data_extract_id;
1036     l_root_budget_group_id := c_BG_Rec.root_budget_group_id;
1037   end loop;
1038 
1039   PSB_BUDGET_ACCOUNT_PVT.Populate_Budget_Accounts
1040      (p_api_version       =>  1.0,
1041       p_init_msg_list     =>  FND_API.G_TRUE,
1042       p_commit            =>  FND_API.G_TRUE,
1043       p_return_status     =>  l_return_status,
1044       p_msg_count         =>  l_msg_count,
1045       p_msg_data          =>  l_msg_data,
1046       p_account_set_id    =>  l_account_set_id
1047       );
1048 
1049   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1050     raise FND_API.G_EXC_ERROR;
1051   end if;
1052 
1053   PSB_BUDGET_GROUPS_PVT.Val_Budget_Group_Hierarchy
1054      (p_api_version   => 1.0,
1055       p_init_msg_list => FND_API.G_TRUE,
1056       p_return_status => l_return_status,
1057       p_msg_count     => l_msg_count,
1058       p_msg_data      => l_msg_data,
1059       p_budget_group_id     => l_root_budget_group_id,
1060       p_validate_ranges     => FND_API.G_FALSE,
1061       p_check_missing_acct  => FND_API.G_FALSE);
1062 
1063   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1064     raise FND_API.G_EXC_ERROR;
1065   end if;
1066   */
1067 
1068   PSB_BUDGET_POSITION_PVT.Populate_Budget_Positions
1069      (p_api_version       =>  1.0,
1070       p_commit            =>  FND_API.G_TRUE,
1071       p_return_status     =>  l_return_status,
1072       p_msg_count         =>  l_msg_count,
1073       p_msg_data          =>  l_msg_data,
1074       p_data_extract_id   =>  l_data_extract_id
1075       );
1076 
1077   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1078     raise FND_API.G_EXC_ERROR;
1079   end if;
1080 
1081   -- Validate data consistency for all Positions
1082 
1083   PSB_POSITIONS_PVT.Position_WS_Validation
1084     (p_api_version          => 1.0,
1085      p_return_status        => l_return_status,
1086      p_msg_count            => l_msg_count,
1087      p_msg_data             => l_msg_data,
1088      p_worksheet_id         => p_worksheet_id,
1089      p_validation_status    => l_validation_status
1090     );
1091 
1092   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1093     raise FND_API.G_EXC_ERROR;
1094   end if;
1095 
1096   if l_validation_status <> FND_API.G_RET_STS_SUCCESS THEN
1097     -- submit concurrent request for error report
1098     -- waiting for correction to error messages report
1099 
1100     l_rep_req_id := Fnd_Request.Submit_Request
1101 		       (application   => 'PSB'                          ,
1102 			program       => 'PSBRPERR'                     ,
1103 			description   => 'Position Worksheet Exception Report',
1104 			start_time    =>  NULL                          ,
1105 			sub_request   =>  FALSE                         ,
1106 			argument1     =>  'POSITION_WORKSHEET_EXCEPTION',
1107 			argument2     =>  p_worksheet_id,
1108 			argument3     =>  l_reqid
1109 		      );
1110     --
1111     if l_rep_req_id = 0 then
1112     --
1113     fnd_message.set_name('PSB', 'PSB_FAIL_TO_SUBMIT_REQUEST');
1114     --
1115     end if;
1116 
1117   end if;
1118 
1119   PSB_WORKSHEET_PVT.Create_WS_Line_Items
1120      (p_api_version   => 1.0,
1121       p_return_status => l_return_status,
1122       p_msg_count     => l_msg_count,
1123       p_msg_data      => l_msg_data,
1124       p_worksheet_id  => p_worksheet_id);
1125 
1126   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1127     raise FND_API.G_EXC_ERROR;
1128   end if;
1129 
1130   PSB_MESSAGE_S.Print_Success;
1131   retcode := 0 ;
1132 
1133 EXCEPTION
1134 
1135    WHEN FND_API.G_EXC_ERROR THEN
1136      --
1137      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1138 			       p_print_header =>  FND_API.G_TRUE );
1139      retcode := 2 ;
1140      COMMIT WORK ;
1141      --
1142    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1143      --
1144      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1145 				p_print_header =>  FND_API.G_TRUE );
1146      retcode := 2 ;
1147      COMMIT WORK ;
1148      --
1149    WHEN OTHERS THEN
1150      --
1151      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1152       --
1153      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1154 			       l_api_name  ) ;
1155      END IF ;
1156      --
1157      l_return_status := FND_API.G_RET_STS_ERROR;
1158 
1159      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1160 				 p_print_header =>  FND_API.G_TRUE );
1161      --
1162      retcode := 2 ;
1163      COMMIT WORK ;
1164      --
1165 END Create_Worksheet_Line_Items_CP;
1166 
1167 
1168 /*===========================================================================+
1169  |                   PROCEDURE Validate_Accounts_CP                             |
1170  +===========================================================================*/
1171 --
1172 -- This is the execution file for the concurrent program 'Validate Accounts'
1173 --
1174 PROCEDURE Validate_Accounts_CP
1175 (
1176   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1177   retcode                     OUT  NOCOPY      VARCHAR2  ,
1178   --
1179   p_worksheet_id              IN       NUMBER
1180 )
1181 IS
1182   l_api_name       CONSTANT VARCHAR2(30)   := 'Validate_Accounts_CP';
1183   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1184   l_return_status           VARCHAR2(1) ;
1185   l_msg_count               NUMBER ;
1186   l_msg_data                VARCHAR2(2000) ;
1187   l_root_budget_group_id    NUMBER;
1188 
1189   -- Bug 3458191
1190   l_set_of_books_id         NUMBER;
1191 
1192 BEGIN
1193 
1194   -- Bug 3458191: Retrieve root budget group id, and set of books id
1195   SELECT bg.budget_group_id,
1196          bg.set_of_books_id
1197     INTO l_root_budget_group_id,
1198          l_set_of_books_id
1199     FROM psb_budget_groups bg
1200    WHERE bg.budget_group_id =
1201          (SELECT nvl(bg1.root_budget_group_id, bg1.budget_group_id) root_budget_group_id
1202             FROM psb_worksheets ws, psb_budget_groups bg1
1203            WHERE bg1.budget_group_id = ws.budget_group_id
1204                  and ws.worksheet_id = p_worksheet_id);
1205 
1206   PSB_Budget_Account_PVT.Populate_Budget_Accounts
1207   (
1208     p_api_version       =>  1.0                         ,
1209     p_init_msg_list     =>  FND_API.G_TRUE              ,
1210     p_commit            =>  FND_API.G_FALSE             ,
1211     p_validation_level  =>  FND_API.G_VALID_LEVEL_FULL  ,
1212     p_return_status     =>  l_return_status             ,
1213     p_msg_count         =>  l_msg_count                 ,
1214     p_msg_data          =>  l_msg_data                  ,
1215     -- Bug 3458191: Pass set of books id
1216     p_set_of_books_id   =>  l_set_of_books_id
1217   );
1218 
1219   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1220     raise FND_API.G_EXC_ERROR;
1221   end if;
1222 
1223   PSB_BUDGET_GROUPS_PVT.Val_Budget_Group_Hierarchy
1224   (
1225     p_api_version   => 1.0,
1226     p_init_msg_list => FND_API.G_TRUE,
1227     p_return_status => l_return_status,
1228     p_msg_count     => l_msg_count,
1229     p_msg_data      => l_msg_data,
1230     p_budget_group_id     => l_root_budget_group_id,
1231     p_validate_ranges     => FND_API.G_FALSE,
1232     p_check_missing_acct  => FND_API.G_FALSE
1233   );
1234 
1235   if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1236     raise FND_API.G_EXC_ERROR;
1237   end if;
1238 
1239   PSB_MESSAGE_S.Print_Success;
1240   retcode := 0 ;
1241 
1242 EXCEPTION
1243 
1244    WHEN FND_API.G_EXC_ERROR THEN
1245      --
1246      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1247 				 p_print_header =>  FND_API.G_TRUE );
1248      retcode := 2 ;
1249      COMMIT WORK ;
1250      --
1251      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1252      --
1253      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1254 				p_print_header =>  FND_API.G_TRUE );
1255      retcode := 2 ;
1256      COMMIT WORK ;
1257      --
1258   WHEN OTHERS THEN
1259 
1260       --
1261      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1262       --
1263      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1264 			       l_api_name  ) ;
1265      END IF ;
1266      --
1267      l_return_status := FND_API.G_RET_STS_ERROR;
1268 
1269      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1270 				 p_print_header =>  FND_API.G_TRUE );
1271      --
1272      retcode := 2 ;
1273      COMMIT WORK ;
1274      --
1275 END Validate_Accounts_CP;
1276 
1277 
1278 /*===========================================================================+
1279  |                   PROCEDURE Pre_Create_WS_Lines_CP                             |
1280  +===========================================================================*/
1281 --
1282 -- This is the execution file for the concurrent program 'Pre_Create_WS_Lines'
1283 --
1284 PROCEDURE Pre_Create_WS_Lines_CP
1285 (
1286   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1287   retcode                     OUT  NOCOPY      VARCHAR2  ,
1288   --
1289   p_worksheet_id              IN       NUMBER
1290 )
1291 IS
1292   l_api_name       CONSTANT VARCHAR2(30)   := 'Pre_Create_Line_Items';
1293   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1294   --
1295   l_return_status           VARCHAR2(1) ;
1296 
1297 BEGIN
1298 
1299     PSB_WORKSHEET.Pre_Create_Line_Items
1300      (p_api_version       => 1.0,
1301       p_return_status     => l_return_status,
1302       p_worksheet_id      => p_worksheet_id);
1303 
1304     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1305       raise FND_API.G_EXC_ERROR;
1306     end if;
1307 
1308   PSB_MESSAGE_S.Print_Success;
1309   retcode := 0 ;
1310 
1311 EXCEPTION
1312 
1313   WHEN FND_API.G_EXC_ERROR THEN
1314      --
1315      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1316 				 p_print_header =>  FND_API.G_TRUE );
1317      retcode := 2 ;
1318      COMMIT WORK ;
1319      --
1320      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1321      --
1322      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1323 				p_print_header =>  FND_API.G_TRUE );
1324      retcode := 2 ;
1325      COMMIT WORK ;
1326      --
1327   WHEN OTHERS THEN
1328 
1329       --
1330      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1331       --
1332      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1333 			       l_api_name  ) ;
1334      END IF ;
1335      --
1336      l_return_status := FND_API.G_RET_STS_ERROR;
1337 
1338      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1339 				 p_print_header =>  FND_API.G_TRUE );
1340      --
1341      retcode := 2 ;
1342      COMMIT WORK ;
1343      --
1344 END Pre_Create_WS_Lines_CP;
1345 
1346 /*===========================================================================+
1347  |                   PROCEDURE Create_Acct_Line_Items_CP                      |
1348  +===========================================================================*/
1349 --
1350 -- This is the execution file for the concurrent program 'Create Account
1351 -- Line Items '
1352 --
1353 PROCEDURE Create_Acct_Line_Items_CP
1354 (
1355   errbuf                             OUT  NOCOPY      VARCHAR2  ,
1356   retcode                            OUT  NOCOPY      VARCHAR2  ,
1357   --
1358   p_create_non_pos_line_items        IN       VARCHAR2,
1359   p_worksheet_id                     IN       NUMBER
1360 )
1361 IS
1362   l_api_name       CONSTANT VARCHAR2(30)   := 'Create_Acct_Line_Items_CP';
1363   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1364   --
1365   l_return_status           VARCHAR2(1) ;
1366   l_msg_count               NUMBER ;
1367   l_msg_data                VARCHAR2(2000) ;
1368 
1369 /* Bug No 2550186 Start */
1370   l_msg_buf                 VARCHAR2(2000);
1371 /* Bug No 2550186 End */
1372 
1373 BEGIN
1374   --If the Flag is 'N' then do not process at all
1375   IF p_create_non_pos_line_items = 'Y' then
1376 
1377     -- Bug 3458191: Make g_worksheet_creation_flag to TRUE for ws caching
1378     PSB_WORKSHEET.g_ws_creation_flag := TRUE;
1379 
1380     PSB_WORKSHEET.Create_Acct_Line_Items
1381      (p_api_version       => 1.0,
1382       p_return_status     => l_return_status,
1383       p_worksheet_id      => p_worksheet_id);
1384 
1385     -- Bug 3458191: Reset g_worksheet_creation_flag to FALSE
1386     PSB_WORKSHEET.g_ws_creation_flag := FALSE;
1387 
1388     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1389       raise FND_API.G_EXC_ERROR;
1390     end if;
1391 
1392   END IF;
1393 
1394 /* Bug No 2550186 Start */
1395     -- Count total number of messages.
1396     l_msg_count := FND_MSG_PUB.Count_Msg;
1397 
1398     if l_msg_count > 0 then
1399        FND_MESSAGE.Set_Name('PSB', 'PSB_PROGRAM_WARNING_HEADER');
1400        l_msg_buf  := FND_Message.Get;
1401        FND_FILE.Put_Line(FND_FILE.LOG, l_msg_buf);
1402 
1403        PSB_MESSAGE_S.Print_Error ( p_mode         =>  FND_FILE.LOG,
1404 				   p_print_header =>  FND_API.G_FALSE);
1405     end if;
1406 /* Bug No 2550186 End */
1407 
1408   PSB_MESSAGE_S.Print_Success;
1409 
1410 /* Bug No 2550186 Start */
1411   if l_msg_count > 0 then
1412      FND_MESSAGE.Set_Name('PSB', 'PSB_SUCCESS_WARNING_HEADER');
1413      l_msg_buf  := FND_Message.Get;
1414      FND_FILE.Put_Line(FND_FILE.OUTPUT, l_msg_buf);
1415   end if;
1416 /* Bug No 2550186 End */
1417 
1418   retcode := 0 ;
1419 
1420 EXCEPTION
1421 
1422   WHEN FND_API.G_EXC_ERROR THEN
1423      --
1424     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1425 				 p_print_header =>  FND_API.G_TRUE );
1426     retcode := 2 ;
1427     COMMIT WORK ;
1428     --
1429   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1430      --
1431     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1432 				p_print_header =>  FND_API.G_TRUE );
1433     retcode := 2 ;
1434     COMMIT WORK ;
1435     --
1436   WHEN OTHERS THEN
1437 
1438     --
1439     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1440     --
1441     FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1442 			       l_api_name  ) ;
1443     END IF ;
1444      --
1445     l_return_status := FND_API.G_RET_STS_ERROR;
1446 
1447     PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1448 				 p_print_header =>  FND_API.G_TRUE );
1449     --
1450     retcode := 2 ;
1451     COMMIT WORK ;
1452     --
1453 END Create_Acct_Line_Items_CP;
1454 
1455 /*===========================================================================+
1456  |                   PROCEDURE Create_Pos_Line_Items_CP                      |
1457  +===========================================================================*/
1458 --
1459 -- This is the execution file for the concurrent program 'Create Position
1460 -- Line Items '
1461 --
1462 PROCEDURE Create_Pos_Line_Items_CP
1463 (
1464   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1465   retcode                     OUT  NOCOPY      VARCHAR2  ,
1466   --
1467   p_create_positions          IN       VARCHAR2  ,
1468   p_worksheet_id              IN       NUMBER
1469 )
1470 IS
1471   l_api_name       CONSTANT VARCHAR2(30)   := 'Create_Pos_Line_Items_CP';
1472   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1473   --
1474   l_return_status           VARCHAR2(1) ;
1475 
1476 BEGIN
1477 
1478   IF p_create_positions = 'Y' THEN
1479 
1480     PSB_WORKSHEET.Create_Pos_Line_Items
1481      (p_api_version       => 1.0,
1482       p_return_status     => l_return_status,
1483       p_worksheet_id      => p_worksheet_id);
1484 
1485     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1486       raise FND_API.G_EXC_ERROR;
1487     end if;
1488 
1489   ELSE
1490 
1491     NULL;
1492 
1493   END IF;
1494 
1495   PSB_MESSAGE_S.Print_Success;
1496   retcode := 0 ;
1497 
1498 EXCEPTION
1499 
1500   WHEN FND_API.G_EXC_ERROR THEN
1501      --
1502      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1503 				 p_print_header =>  FND_API.G_TRUE );
1504      retcode := 2 ;
1505      COMMIT WORK ;
1506      --
1507      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1508      --
1509      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1510 				p_print_header =>  FND_API.G_TRUE );
1511      retcode := 2 ;
1512      COMMIT WORK ;
1513      --
1514   WHEN OTHERS THEN
1515 
1516      --
1517      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1518      --
1519      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1520 			       l_api_name  ) ;
1521      END IF ;
1522      --
1523      l_return_status := FND_API.G_RET_STS_ERROR;
1524 
1525      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1526 				 p_print_header =>  FND_API.G_TRUE );
1527      --
1528      retcode := 2 ;
1529      COMMIT WORK ;
1530      --
1531 
1532 END Create_Pos_Line_Items_CP;
1533 
1534 /*===========================================================================+
1535  |                   PROCEDURE Apply_Acct_Constraints_CP                      |
1536  +===========================================================================*/
1537 --
1538 -- This is the execution file for the concurrent program 'Apply Account
1539 -- Constraints '
1540 --
1541 PROCEDURE Apply_Acct_Constraints_CP
1542 (
1543   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1544   retcode                     OUT  NOCOPY      VARCHAR2  ,
1545   --
1546   p_apply_constraints         IN       VARCHAR2  ,
1547   p_worksheet_id              IN       NUMBER
1548 )
1549 IS
1550   l_api_name       CONSTANT VARCHAR2(30)   := 'Apply_Acct_Constraints_CP';
1551   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1552   l_validation_status       VARCHAR2(1);
1553   --
1554   l_return_status           VARCHAR2(1) ;
1555 
1556 BEGIN
1557 
1558   IF p_apply_constraints = 'Y' THEN
1559 
1560     PSB_WORKSHEET.Apply_Acct_Constraints
1561      (p_api_version       => 1.0,
1562       p_return_status     => l_return_status,
1563       p_worksheet_id      => p_worksheet_id);
1564 
1565     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1566       raise FND_API.G_EXC_ERROR;
1567     end if;
1568 
1569   ELSE
1570 
1571     NULL;
1572 
1573   END IF;
1574 
1575   PSB_MESSAGE_S.Print_Success;
1576   retcode := 0 ;
1577 
1578 EXCEPTION
1579 
1580   WHEN FND_API.G_EXC_ERROR THEN
1581      --
1582      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1583 				 p_print_header =>  FND_API.G_TRUE );
1584      retcode := 2 ;
1585      COMMIT WORK ;
1586      --
1587      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1588      --
1589      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1590 				p_print_header =>  FND_API.G_TRUE );
1591      retcode := 2 ;
1592      COMMIT WORK ;
1593      --
1594   WHEN OTHERS THEN
1595 
1596      --
1597      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1598      --
1599      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1600 			       l_api_name  ) ;
1601      END IF ;
1602      --
1603      l_return_status := FND_API.G_RET_STS_ERROR;
1604 
1605      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1606 				 p_print_header =>  FND_API.G_TRUE );
1607      --
1608      retcode := 2 ;
1609      COMMIT WORK ;
1610      --
1611 
1612 END Apply_Acct_Constraints_CP;
1613 
1614 
1615 /*===========================================================================+
1616  |                   PROCEDURE Apply_Pos_Constraints_CP                      |
1617  +===========================================================================*/
1618 --
1619 -- This is the execution file for the concurrent program 'Apply Position
1620 -- Constraints '
1621 --
1622 PROCEDURE Apply_Pos_Constraints_CP
1623 (
1624   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1625   retcode                     OUT  NOCOPY      VARCHAR2  ,
1626   --
1627   p_apply_constraints         IN       VARCHAR2  ,
1628   p_worksheet_id              IN       NUMBER
1629 )
1630 IS
1631   l_api_name       CONSTANT VARCHAR2(30)   := 'Apply_Pos_Constraints_CP';
1632   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1633   l_validation_status       VARCHAR2(1);
1634   --
1635   l_return_status           VARCHAR2(1) ;
1636 
1637 BEGIN
1638   IF p_apply_constraints = 'Y' THEN
1639 
1640     PSB_WORKSHEET.Apply_Pos_Constraints
1641      (p_api_version       => 1.0,
1642       p_return_status     => l_return_status,
1643       p_worksheet_id      => p_worksheet_id);
1644 
1645     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1646       raise FND_API.G_EXC_ERROR;
1647     end if;
1648 
1649   ELSE
1650 
1651     NULL;
1652 
1653   END IF;
1654 
1655   PSB_MESSAGE_S.Print_Success;
1656   retcode := 0 ;
1657 
1658 EXCEPTION
1659 
1660    WHEN FND_API.G_EXC_ERROR THEN
1661      --
1662      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1663 				 p_print_header =>  FND_API.G_TRUE );
1664      retcode := 2 ;
1665      COMMIT WORK ;
1666      --
1667      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1668      --
1669      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1670 				p_print_header =>  FND_API.G_TRUE );
1671      retcode := 2 ;
1672      COMMIT WORK ;
1673      --
1674   WHEN OTHERS THEN
1675 
1676      --
1677      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1678      --
1679      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1680 			       l_api_name  ) ;
1681      END IF ;
1682      --
1683      l_return_status := FND_API.G_RET_STS_ERROR;
1684 
1685      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1686 				 p_print_header =>  FND_API.G_TRUE );
1687      --
1688      retcode := 2 ;
1689      COMMIT WORK ;
1690      --
1691 
1692 END Apply_Pos_Constraints_CP;
1693 
1694 
1695 /*===========================================================================+
1696  |                   PROCEDURE Apply_Elem_Constraints_CP                     |
1697  +===========================================================================*/
1698 --
1699 -- This is the execution file for the concurrent program 'Apply Element
1700 -- Constraints '
1701 --
1702 PROCEDURE Apply_Elem_Constraints_CP
1703 (
1704   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1705   retcode                     OUT  NOCOPY      VARCHAR2  ,
1706   --
1707   p_apply_constraints         IN       VARCHAR2  ,
1708   p_worksheet_id              IN       NUMBER
1709 )
1710 IS
1711   l_api_name       CONSTANT VARCHAR2(30)   := 'Apply_Elem_Constraints_CP';
1712   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1713   l_validation_status       VARCHAR2(1);
1714   --
1715   l_return_status           VARCHAR2(1) ;
1716 
1717 BEGIN
1718 
1719   IF p_apply_constraints = 'Y' THEN
1720 
1721     PSB_WORKSHEET.Apply_Elem_Constraints
1722      (p_api_version       => 1.0,
1723       p_return_status     => l_return_status,
1724       p_worksheet_id      => p_worksheet_id);
1725 
1726     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1727       raise FND_API.G_EXC_ERROR;
1728     end if;
1729 
1730   ELSE
1731 
1732     NULL;
1733 
1734   END IF;
1735 
1736   PSB_MESSAGE_S.Print_Success;
1737   retcode := 0 ;
1738 
1739 EXCEPTION
1740 
1741    WHEN FND_API.G_EXC_ERROR THEN
1742      --
1743      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1744 				 p_print_header =>  FND_API.G_TRUE );
1745      retcode := 2 ;
1746      COMMIT WORK ;
1747      --
1748      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1749      --
1750      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1751 				p_print_header =>  FND_API.G_TRUE );
1752      retcode := 2 ;
1753      COMMIT WORK ;
1754      --
1755   WHEN OTHERS THEN
1756 
1757      --
1758      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1759      --
1760      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1761 			       l_api_name  ) ;
1762      END IF ;
1763      --
1764      l_return_status := FND_API.G_RET_STS_ERROR;
1765 
1766      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1767 				 p_print_header =>  FND_API.G_TRUE );
1768      --
1769      retcode := 2 ;
1770      COMMIT WORK ;
1771      --
1772 
1773 END Apply_Elem_Constraints_CP;
1774 
1775 /*===========================================================================+
1776  |                   PROCEDURE Post_Create_WS_Lines_CP                             |
1777  +===========================================================================*/
1778 --
1779 -- This is the execution file for the concurrent program 'Post_Create_WS_Lines'
1780 --
1781 PROCEDURE Post_Create_WS_Lines_CP
1782 (
1783   errbuf                      OUT  NOCOPY      VARCHAR2  ,
1784   retcode                     OUT  NOCOPY      VARCHAR2  ,
1785   --
1786   p_worksheet_id              IN       NUMBER
1787 )
1788 IS
1789   l_api_name       CONSTANT VARCHAR2(30)   := 'Post_Create_WS_Lines_CP';
1790   l_api_version    CONSTANT NUMBER         :=  1.0 ;
1791   --
1792   l_return_status           VARCHAR2(1) ;
1793 
1794 BEGIN
1795 
1796     PSB_WORKSHEET.Post_Create_Line_Items
1797      (p_api_version       => 1.0,
1798       p_return_status     => l_return_status,
1799       p_worksheet_id      => p_worksheet_id);
1800 
1801     if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1802       raise FND_API.G_EXC_ERROR;
1803     end if;
1804 
1805   PSB_MESSAGE_S.Print_Success;
1806   retcode := 0 ;
1807 
1808 EXCEPTION
1809 
1810    WHEN FND_API.G_EXC_ERROR THEN
1811      --
1812      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1813 				 p_print_header =>  FND_API.G_TRUE );
1814      retcode := 2 ;
1815      COMMIT WORK ;
1816      --
1817      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1818      --
1819      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1820 				p_print_header =>  FND_API.G_TRUE );
1821      retcode := 2 ;
1822      COMMIT WORK ;
1823      --
1824   WHEN OTHERS THEN
1825 
1826       --
1827      IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1828       --
1829      FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,
1830 			       l_api_name  ) ;
1831      END IF ;
1832      --
1833      l_return_status := FND_API.G_RET_STS_ERROR;
1834 
1835      PSB_MESSAGE_S.Print_Error ( p_mode         => FND_FILE.LOG ,
1836 				 p_print_header =>  FND_API.G_TRUE );
1837      --
1838      retcode := 2 ;
1839      COMMIT WORK ;
1840      --
1841 END Post_Create_WS_Lines_CP;
1842 
1843 /* ----------------------------------------------------------------------- */
1844 
1845 END PSB_WORKSHEET_PVT;