[Home] [Help]
PACKAGE BODY: APPS.PA_ACTION_SETS_PUB
Source
1 PACKAGE BODY pa_action_sets_pub AS
2 /*$Header: PARASPUB.pls 120.3 2007/02/06 09:45:50 dthakker ship $*/
3 --
4 PROCEDURE create_action_set
5 (p_action_set_type_code IN pa_action_set_types.action_set_type_code%TYPE
6 ,p_action_set_name IN pa_action_sets.action_set_name%TYPE
7 ,p_object_type IN pa_action_sets.object_type%TYPE := NULL
8 ,p_object_id IN pa_action_sets.object_id%TYPE := NULL
9 ,p_start_date_active IN pa_action_sets.start_date_active%TYPE := NULL
10 ,p_end_date_active IN pa_action_sets.end_date_active%TYPE := NULL
11 ,p_action_set_template_flag IN pa_action_sets.action_set_template_flag%TYPE := NULL
12 ,p_source_action_set_id IN pa_action_sets.source_action_set_id%TYPE := NULL
13 ,p_status_code IN pa_action_sets.status_code%TYPE := NULL
14 ,p_description IN pa_action_sets.description%TYPE := NULL
15 ,p_attribute_category IN pa_action_sets.attribute_category%TYPE := NULL
16 ,p_attribute1 IN pa_action_sets.attribute1%TYPE := NULL
17 ,p_attribute2 IN pa_action_sets.attribute2%TYPE := NULL
18 ,p_attribute3 IN pa_action_sets.attribute3%TYPE := NULL
19 ,p_attribute4 IN pa_action_sets.attribute4%TYPE := NULL
20 ,p_attribute5 IN pa_action_sets.attribute5%TYPE := NULL
21 ,p_attribute6 IN pa_action_sets.attribute6%TYPE := NULL
22 ,p_attribute7 IN pa_action_sets.attribute7%TYPE := NULL
23 ,p_attribute8 IN pa_action_sets.attribute8%TYPE := NULL
24 ,p_attribute9 IN pa_action_sets.attribute9%TYPE := NULL
25 ,p_attribute10 IN pa_action_sets.attribute10%TYPE := NULL
26 ,p_attribute11 IN pa_action_sets.attribute11%TYPE := NULL
27 ,p_attribute12 IN pa_action_sets.attribute12%TYPE := NULL
28 ,p_attribute13 IN pa_action_sets.attribute13%TYPE := NULL
29 ,p_attribute14 IN pa_action_sets.attribute14%TYPE := NULL
30 ,p_attribute15 IN pa_action_sets.attribute15%TYPE := NULL
31 ,p_api_version IN NUMBER := 1.0
32 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
33 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
34 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
35 ,x_action_set_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
36 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
37 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
38 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
39 )
40 IS
41
42 l_return_status VARCHAR2(1);
43 l_msg_index_out NUMBER;
44 l_debug_mode VARCHAR2(20) := 'N';
45
46 BEGIN
47
48 -- Initialize the Error Stack
49 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Create_Action_Set');
50
51 -- Bug 4403338
52 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
53
54 -- Initialize the return status to success
55 x_return_status := FND_API.G_RET_STS_SUCCESS;
56
57 --Clear the global PL/SQL message table
58 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
59 FND_MSG_PUB.initialize;
60 END IF;
61
62 -- Issue API savepoint if the transaction is to be committed
63 IF p_commit = FND_API.G_TRUE THEN
64 SAVEPOINT CREATE_ACTION_SETS_PUB;
65 END IF;
66
67 --Log Message: 4403338
68 IF l_debug_mode = 'Y' THEN
69 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Create_Action_Set.begin'
70 ,x_msg => 'Beginning of Create_Action_Set pub'
71 ,x_log_level => 5);
72
73 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Create_Action_Set.begin'
74 ,x_msg => 'calling create_Action_Set pvt'
75 ,x_log_level => 5);
76 END IF;
77
78
79 PA_ACTION_SETS_PVT.create_action_set
80 (p_action_set_type_code => p_action_set_type_code
81 ,p_action_set_name => p_action_set_name
82 ,p_object_type => p_object_type
83 ,p_object_id => p_object_id
84 ,p_start_date_active => p_start_date_active
85 ,p_end_date_active => p_end_date_active
86 ,p_action_set_template_flag => p_action_set_template_flag
87 ,p_source_action_set_id => p_source_action_set_id
88 ,p_status_code => p_status_code
89 ,p_description => p_description
90 ,p_attribute_category => p_attribute_category
91 ,p_attribute1 => p_attribute1
92 ,p_attribute2 => p_attribute2
93 ,p_attribute3 => p_attribute3
94 ,p_attribute4 => p_attribute4
95 ,p_attribute5 => p_attribute5
96 ,p_attribute6 => p_attribute6
97 ,p_attribute7 => p_attribute7
98 ,p_attribute8 => p_attribute8
99 ,p_attribute9 => p_attribute9
100 ,p_attribute10 => p_attribute10
101 ,p_attribute11 => p_attribute11
102 ,p_attribute12 => p_attribute12
103 ,p_attribute13 => p_attribute13
104 ,p_attribute14 => p_attribute14
105 ,p_attribute15 => p_attribute15
106 ,x_action_set_id => x_action_set_id
107 ,x_return_status => l_return_status);
108
109 x_msg_count := FND_MSG_PUB.Count_Msg;
110 IF x_msg_count = 1 THEN
111 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
112 ,p_msg_index => 1
113 ,p_data => x_msg_data
114 ,p_msg_index_out => l_msg_index_out
115 );
116 END IF;
117
118 -- Reset the error stack when returning to the calling program
119 PA_DEBUG.Reset_Err_Stack;
120 -- If any errors exist then set the x_return_status to 'E'
121
122 IF x_msg_count > 0 THEN
123 x_return_status := FND_API.G_RET_STS_ERROR;
124 END IF;
125
126 -- Commit if the flag is set and there is no error
127 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
128 COMMIT;
129 END IF;
130
131 EXCEPTION
132 WHEN OTHERS THEN
133 IF p_commit = FND_API.G_TRUE THEN
134 ROLLBACK TO CREATE_ACTION_SETS_PUB;
135 END IF;
136
137 -- Set the excetption Message and the stack
138 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Create_Action_Set'
139 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
140 --
141 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
142 RAISE;
143
144 END Create_Action_Set;
145
146
147 PROCEDURE update_action_set
148 (p_action_set_id IN pa_action_sets.action_set_id%TYPE := NULL
149 ,p_action_set_name IN pa_action_sets.action_set_name%TYPE := FND_API.G_MISS_CHAR
150 ,p_object_type IN pa_action_sets.object_type%TYPE := FND_API.G_MISS_CHAR
151 ,p_action_set_type_code IN pa_action_sets.action_set_type_code%TYPE := FND_API.G_MISS_CHAR
152 ,p_object_id IN pa_action_sets.object_id%TYPE := FND_API.G_MISS_NUM
153 ,p_start_date_active IN pa_action_sets.start_date_active%TYPE := FND_API.G_MISS_DATE
154 ,p_end_date_active IN pa_action_sets.end_date_active%TYPE := FND_API.G_MISS_DATE
155 ,p_action_set_template_flag IN pa_action_sets.action_set_template_flag%TYPE := FND_API.G_MISS_CHAR
156 ,p_status_code IN pa_action_sets.status_code%TYPE := FND_API.G_MISS_CHAR
157 ,p_description IN pa_action_sets.description%TYPE := FND_API.G_MISS_CHAR
158 ,p_record_version_number IN pa_action_sets.record_version_number%TYPE
159 ,p_attribute_category IN pa_action_sets.attribute_category%TYPE := FND_API.G_MISS_CHAR
160 ,p_attribute1 IN pa_action_sets.attribute1%TYPE := FND_API.G_MISS_CHAR
161 ,p_attribute2 IN pa_action_sets.attribute2%TYPE := FND_API.G_MISS_CHAR
162 ,p_attribute3 IN pa_action_sets.attribute3%TYPE := FND_API.G_MISS_CHAR
163 ,p_attribute4 IN pa_action_sets.attribute4%TYPE := FND_API.G_MISS_CHAR
164 ,p_attribute5 IN pa_action_sets.attribute5%TYPE := FND_API.G_MISS_CHAR
165 ,p_attribute6 IN pa_action_sets.attribute6%TYPE := FND_API.G_MISS_CHAR
166 ,p_attribute7 IN pa_action_sets.attribute7%TYPE := FND_API.G_MISS_CHAR
167 ,p_attribute8 IN pa_action_sets.attribute8%TYPE := FND_API.G_MISS_CHAR
168 ,p_attribute9 IN pa_action_sets.attribute9%TYPE := FND_API.G_MISS_CHAR
169 ,p_attribute10 IN pa_action_sets.attribute10%TYPE := FND_API.G_MISS_CHAR
170 ,p_attribute11 IN pa_action_sets.attribute11%TYPE := FND_API.G_MISS_CHAR
171 ,p_attribute12 IN pa_action_sets.attribute12%TYPE := FND_API.G_MISS_CHAR
172 ,p_attribute13 IN pa_action_sets.attribute13%TYPE := FND_API.G_MISS_CHAR
173 ,p_attribute14 IN pa_action_sets.attribute14%TYPE := FND_API.G_MISS_CHAR
174 ,p_attribute15 IN pa_action_sets.attribute15%TYPE := FND_API.G_MISS_CHAR
175 ,p_api_version IN NUMBER := 1.0
176 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
177 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
178 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
179 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
180 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
181 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
182 )
183 IS
184
185 l_return_status VARCHAR2(1);
186 l_msg_index_out NUMBER;
187 l_action_set_id NUMBER;
188 l_record_version_number NUMBER;
189 l_debug_mode VARCHAR2(20) := 'N';
190
191 BEGIN
192
193 -- Initialize the Error Stack
194 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Update_Action_Set');
195
196 -- Bug 4403338
197 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
198
199 -- Initialize the return status to success
200 x_return_status := FND_API.G_RET_STS_SUCCESS;
201
202 --Clear the global PL/SQL message table
203 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
204 FND_MSG_PUB.initialize;
205 END IF;
206
207 -- Issue API savepoint if the transaction is to be committed
208 IF p_commit = FND_API.G_TRUE THEN
209 SAVEPOINT UPDATE_ACTION_SETS_PUB;
210 END IF;
211
212 --Log Message: 4403338
213 IF l_debug_mode = 'Y' THEN
214 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Update_Action_Set.begin'
215 ,x_msg => 'Beginning of Update_Action_Set pub'
216 ,x_log_level => 5);
217 END IF;
218
219 l_action_set_id := p_action_set_id;
220
221 IF l_action_set_id IS NULL THEN
222 l_action_set_id := PA_ACTION_SET_UTILS.get_action_set_id
223 (p_action_set_type_code => p_action_set_type_code,
224 p_object_type => p_object_type,
225 p_object_id => p_object_id);
226 END IF;
227
228 BEGIN
229
230 SELECT record_version_number INTO l_record_version_number
231 FROM pa_action_sets
232 WHERE action_set_id = l_action_set_id
233 AND record_version_number = p_record_version_number;
234
235 EXCEPTION
236 WHEN NO_DATA_FOUND THEN
237 PA_UTILS.Add_Message( p_app_short_name => 'PA'
238 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
239
240 END;
241
242 --Log Message: 4403338
243 IF l_debug_mode = 'Y' THEN
244 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Update_Action_Set.begin'
245 ,x_msg => 'calling Update_Action_Set pvt'
246 ,x_log_level => 5);
247 END IF;
248
249 PA_ACTION_SETS_PVT.update_action_set
250 (p_action_set_id => l_action_set_id
251 ,p_action_set_name => p_action_set_name
252 ,p_action_set_type_code => p_action_set_type_code
253 ,p_start_date_active => p_start_date_active
254 ,p_end_date_active => p_end_date_active
255 ,p_status_code => p_status_code
256 ,p_description => p_description
257 ,p_record_version_number => p_record_version_number
258 ,p_attribute_category => p_attribute_category
259 ,p_attribute1 => p_attribute1
260 ,p_attribute2 => p_attribute2
261 ,p_attribute3 => p_attribute3
262 ,p_attribute4 => p_attribute4
263 ,p_attribute5 => p_attribute5
264 ,p_attribute6 => p_attribute6
265 ,p_attribute7 => p_attribute7
266 ,p_attribute8 => p_attribute8
267 ,p_attribute9 => p_attribute9
268 ,p_attribute10 => p_attribute10
269 ,p_attribute11 => p_attribute11
270 ,p_attribute12 => p_attribute12
271 ,p_attribute13 => p_attribute13
272 ,p_attribute14 => p_attribute14
273 ,p_attribute15 => p_attribute15
274 ,x_return_status => l_return_status);
275
276
277 x_msg_count := FND_MSG_PUB.Count_Msg;
278 IF x_msg_count = 1 THEN
279 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
280 ,p_msg_index => 1
281 ,p_data => x_msg_data
282 ,p_msg_index_out => l_msg_index_out
283 );
284 END IF;
285
286 -- Reset the error stack when returning to the calling program
287 PA_DEBUG.Reset_Err_Stack;
288 -- If any errors exist then set the x_return_status to 'E'
289
290 IF x_msg_count > 0 THEN
291 x_return_status := FND_API.G_RET_STS_ERROR;
292 END IF;
293
294 -- Commit if the flag is set and there is no error
295 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
296 COMMIT;
297 END IF;
298
299 EXCEPTION
300 WHEN OTHERS THEN
301 IF p_commit = FND_API.G_TRUE THEN
302 ROLLBACK TO UPDATE_ACTION_SETS_PUB;
303 END IF;
304
305 -- Set the excetption Message and the stack
306 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Update_Action_Set'
307 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
308 --
309 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
310 RAISE;
311
312 END Update_Action_Set;
313
314
315 PROCEDURE delete_action_set
316 (p_action_set_id IN pa_action_sets.action_set_id%TYPE := NULL
317 ,p_action_set_type_code IN pa_action_sets.action_set_type_code%TYPE := NULL
318 ,p_object_type IN pa_action_sets.object_type%TYPE := NULL
319 ,p_object_id IN pa_action_sets.object_id%TYPE := NULL
320 ,p_record_version_number IN pa_action_sets.record_version_number%TYPE
321 ,p_api_version IN NUMBER := 1.0
322 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
323 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
324 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
325 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
326 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
327 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
328 )
329 IS
330
331 l_return_status VARCHAR2(1);
332 l_msg_index_out NUMBER;
333 l_action_set_id NUMBER;
334 l_record_version_number NUMBER;
335 l_debug_mode VARCHAR2(20) := 'N';
336
337 -- Start 5130421
338 l_start_msg_count NUMBER;
339 l_end_msg_count NUMBER;
340 l_current_api_msg_count NUMBER;
341 -- End 5130421
342 BEGIN
343
344 -- Initialize the Error Stack
345 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Delete_Action_Set');
346
347 -- Bug 4403338
348 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
349
350 -- Initialize the return status to success
351 x_return_status := FND_API.G_RET_STS_SUCCESS;
352
353 --Clear the global PL/SQL message table
354 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
355 FND_MSG_PUB.initialize;
356 END IF;
357
358 -- 5130421
359 l_start_msg_count := FND_MSG_PUB.count_msg ;
360
361 -- Issue API savepoint if the transaction is to be committed
362 IF p_commit = FND_API.G_TRUE THEN
363 SAVEPOINT Delete_ACTION_SETS_PUB;
364 END IF;
365
366 --Log Message: 4403338
367 IF l_debug_mode = 'Y' THEN
368 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Delete_Action_Set.begin'
369 ,x_msg => 'Beginning of Delete_Action_Set pub'
370 ,x_log_level => 5);
371 END IF;
372
373 l_action_set_id := p_action_set_id;
374
375 IF l_action_set_id IS NULL THEN
376 l_action_set_id := PA_ACTION_SET_UTILS.get_action_set_id
377 (p_action_set_type_code => p_action_set_type_code,
378 p_object_type => p_object_type,
379 p_object_id => p_object_id);
380 END IF;
381
382 BEGIN
383
384 SELECT record_version_number INTO l_record_version_number
385 FROM pa_action_sets
386 WHERE action_set_id = l_action_set_id
387 AND record_version_number = p_record_version_number;
388
389 EXCEPTION
390 WHEN NO_DATA_FOUND THEN
391 PA_UTILS.Add_Message( p_app_short_name => 'PA'
392 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
393
394 END;
395
396 --Log Message: 4403338
397 IF l_debug_mode = 'Y' THEN
398 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Delete_Action_Set.begin'
399 ,x_msg => 'calling Delete_Action_Set pvt'
400 ,x_log_level => 5);
401 END IF;
402
403 PA_ACTION_SETS_PVT.delete_action_set
404 (p_action_set_id => l_action_set_id
405 ,p_record_version_number => p_record_version_number
406 ,x_return_status => l_return_status);
407
408 x_msg_count := FND_MSG_PUB.Count_Msg;
409
410 -- 5130421
411 l_end_msg_count := FND_MSG_PUB.Count_Msg;
412
413 l_current_api_msg_count := l_end_msg_count - l_start_msg_count;
414
415 -- 5130421 IF x_msg_count = 1 THEN
416 IF l_current_api_msg_count = 1 THEN
417 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
418 ,p_msg_index => 1
419 ,p_data => x_msg_data
420 ,p_msg_index_out => l_msg_index_out
421 );
422 END IF;
423
424 -- Reset the error stack when returning to the calling program
425 PA_DEBUG.Reset_Err_Stack;
426 -- If any errors exist then set the x_return_status to 'E'
427
428 -- 5130421 IF x_msg_count > 0 THEN
429 IF l_current_api_msg_count > 0 THEN
430 x_return_status := FND_API.G_RET_STS_ERROR;
431 END IF;
432
433 -- Commit if the flag is set and there is no error
434 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
435 COMMIT;
436 END IF;
437
438 EXCEPTION
439 WHEN OTHERS THEN
440 IF p_commit = FND_API.G_TRUE THEN
441 ROLLBACK TO Delete_ACTION_SETS_PUB;
442 END IF;
443
444 -- Set the excetption Message and the stack
445 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Delete_Action_Set'
446 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
447 --
448 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
449 RAISE;
450
451 END Delete_Action_Set;
452
453
454
455
456 PROCEDURE create_action_set_line
457 (p_action_set_id IN pa_action_sets.action_set_id%TYPE
458 ,p_use_def_description_flag IN VARCHAR2 := 'Y'
459 ,p_description IN pa_action_set_lines.description%TYPE := NULL
460 ,p_action_set_line_number IN pa_action_set_lines.action_set_line_number%TYPE := NULL
461 ,p_action_code IN pa_action_set_lines.action_code%TYPE
462 ,p_action_attribute1 IN pa_action_set_lines.action_attribute1%TYPE := NULL
463 ,p_action_attribute2 IN pa_action_set_lines.action_attribute2%TYPE := NULL
464 ,p_action_attribute3 IN pa_action_set_lines.action_attribute3%TYPE := NULL
465 ,p_action_attribute4 IN pa_action_set_lines.action_attribute4%TYPE := NULL
466 ,p_action_attribute5 IN pa_action_set_lines.action_attribute5%TYPE := NULL
467 ,p_action_attribute6 IN pa_action_set_lines.action_attribute6%TYPE := NULL
468 ,p_action_attribute7 IN pa_action_set_lines.action_attribute7%TYPE := NULL
469 ,p_action_attribute8 IN pa_action_set_lines.action_attribute8%TYPE := NULL
470 ,p_action_attribute9 IN pa_action_set_lines.action_attribute9%TYPE := NULL
471 ,p_action_attribute10 IN pa_action_set_lines.action_attribute10%TYPE := NULL
472 ,p_condition_tbl IN pa_action_set_utils.action_line_cond_tbl_type
473 ,p_api_version IN NUMBER := 1.0
474 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
475 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
476 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
477 ,x_action_set_line_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
478 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
479 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
480 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
481 )
482 IS
483
484 l_return_status VARCHAR2(1);
485 l_msg_index_out NUMBER;
486 l_debug_mode VARCHAR2(20) := 'N';
487
488 BEGIN
489
490 -- Initialize the Error Stack
491 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Create_Action_Set_Line');
492
493 -- Bug 4403338
494 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
495
496 -- Initialize the return status to success
497 x_return_status := FND_API.G_RET_STS_SUCCESS;
498
499 --Clear the global PL/SQL message table
500 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
501 FND_MSG_PUB.initialize;
502 END IF;
503
504 -- Issue API savepoint if the transaction is to be committed
505 IF p_commit = FND_API.G_TRUE THEN
506 SAVEPOINT CREATE_ACTION_SET_LINE_PUB;
507 END IF;
508
509 --Log Message: 4403338
510 IF l_debug_mode = 'Y' THEN
511 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Create_Action_Set_Line.begin'
512 ,x_msg => 'Beginning of Create_Action_Set_Line pub'
513 ,x_log_level => 5);
514
515 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Create_Action_SetLine.begin'
516 ,x_msg => 'calling create_Action_Set_Line pvt'
517 ,x_log_level => 5);
518 END IF;
519
520 PA_ACTION_SETS_PVT.create_action_set_line
521 (p_action_set_id => p_action_set_id
522 ,p_use_def_description_flag => p_use_def_description_flag
523 ,p_description => p_description
524 ,p_action_set_line_number => p_action_set_line_number
525 ,p_action_code => p_action_code
526 ,p_action_attribute1 => p_action_attribute1
527 ,p_action_attribute2 => p_action_attribute2
528 ,p_action_attribute3 => p_action_attribute3
529 ,p_action_attribute4 => p_action_attribute4
530 ,p_action_attribute5 => p_action_attribute5
531 ,p_action_attribute6 => p_action_attribute6
532 ,p_action_attribute7 => p_action_attribute7
533 ,p_action_attribute8 => p_action_attribute8
534 ,p_action_attribute9 => p_action_attribute9
535 ,p_action_attribute10 => p_action_attribute10
536 ,p_condition_tbl => p_condition_tbl
537 ,x_action_set_line_id => x_action_set_line_id
538 ,x_return_status => l_return_status);
539
540 x_msg_count := FND_MSG_PUB.Count_Msg;
541 IF x_msg_count = 1 THEN
542 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
543 ,p_msg_index => 1
544 ,p_data => x_msg_data
545 ,p_msg_index_out => l_msg_index_out
546 );
547 END IF;
548
549 -- Reset the error stack when returning to the calling program
550 PA_DEBUG.Reset_Err_Stack;
551 -- If any errors exist then set the x_return_status to 'E'
552
553 IF x_msg_count > 0 THEN
554 x_return_status := FND_API.G_RET_STS_ERROR;
555 END IF;
556
557 -- Commit if the flag is set and there is no error
558 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
559 COMMIT;
560 END IF;
561
562 EXCEPTION
563 WHEN OTHERS THEN
564 IF p_commit = FND_API.G_TRUE THEN
565 ROLLBACK TO CREATE_ACTION_SET_LINE_PUB;
566 END IF;
567
568 -- Set the excetption Message and the stack
569 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Create_Action_Set_Line'
570 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
571 --
572 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
573 RAISE;
574
575 END Create_Action_Set_Line;
576
577
578 PROCEDURE update_action_set_line
579 (p_action_set_line_id IN pa_action_set_lines.action_set_line_id%TYPE
580 ,p_record_version_number IN pa_action_set_lines.record_version_number%TYPE
581 ,p_action_set_line_number IN pa_action_set_lines.action_set_line_number%TYPE := FND_API.G_MISS_NUM
582 ,p_use_def_description_flag IN VARCHAR2 := 'Y'
583 ,p_description IN pa_action_set_lines.description%TYPE := FND_API.G_MISS_CHAR
584 ,p_action_code IN pa_action_set_lines.action_code%TYPE := FND_API.G_MISS_CHAR
585 ,p_action_attribute1 IN pa_action_set_lines.action_attribute1%TYPE := FND_API.G_MISS_CHAR
586 ,p_action_attribute2 IN pa_action_set_lines.action_attribute2%TYPE := FND_API.G_MISS_CHAR
587 ,p_action_attribute3 IN pa_action_set_lines.action_attribute3%TYPE := FND_API.G_MISS_CHAR
588 ,p_action_attribute4 IN pa_action_set_lines.action_attribute4%TYPE := FND_API.G_MISS_CHAR
589 ,p_action_attribute5 IN pa_action_set_lines.action_attribute5%TYPE := FND_API.G_MISS_CHAR
590 ,p_action_attribute6 IN pa_action_set_lines.action_attribute6%TYPE := FND_API.G_MISS_CHAR
591 ,p_action_attribute7 IN pa_action_set_lines.action_attribute7%TYPE := FND_API.G_MISS_CHAR
592 ,p_action_attribute8 IN pa_action_set_lines.action_attribute8%TYPE := FND_API.G_MISS_CHAR
593 ,p_action_attribute9 IN pa_action_set_lines.action_attribute9%TYPE := FND_API.G_MISS_CHAR
594 ,p_action_attribute10 IN pa_action_set_lines.action_attribute10%TYPE := FND_API.G_MISS_CHAR
595 ,p_condition_tbl IN pa_action_set_utils.action_line_cond_tbl_type
596 ,p_api_version IN NUMBER := 1.0
597 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
598 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
599 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
600 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
601 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
602 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
603 )
604 IS
605
606 l_return_status VARCHAR2(1);
607 l_msg_index_out NUMBER;
608 l_action_set_id NUMBER;
609 l_record_version_number NUMBER;
610 l_debug_mode VARCHAR2(20) := 'N';
611
612 BEGIN
613
614 -- Initialize the Error Stack
615 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Update_Action_Set_Line');
616
617 -- Bug 4403338
618 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
619
620 -- Initialize the return status to success
621 x_return_status := FND_API.G_RET_STS_SUCCESS;
622
623 --Clear the global PL/SQL message table
624 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
625 FND_MSG_PUB.initialize;
626 END IF;
627
628 -- Issue API savepoint if the transaction is to be committed
629 IF p_commit = FND_API.G_TRUE THEN
630 SAVEPOINT UPDATE_ACTION_SET_LINE_PUB;
631 END IF;
632
633 --Log Message: 4403338
634 IF l_debug_mode = 'Y' THEN
635 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Update_Action_Set_Line.begin'
636 ,x_msg => 'Beginning of Update_Action_Set_Line pub'
637 ,x_log_level => 5);
638
639 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Update_Action_Set_Line.begin'
640 ,x_msg => 'calling Update_Action_Set_Line pvt'
641 ,x_log_level => 5);
642 END IF;
643
644 PA_ACTION_SETS_PVT.update_action_set_line
645 (p_action_set_line_id => p_action_set_line_id
646 ,p_record_version_number => p_record_version_number
647 ,p_description => p_description
648 ,p_action_set_line_number => p_action_set_line_number
649 ,p_action_code => p_action_code
650 ,p_action_attribute1 => p_action_attribute1
651 ,p_action_attribute2 => p_action_attribute2
652 ,p_action_attribute3 => p_action_attribute3
653 ,p_action_attribute4 => p_action_attribute4
654 ,p_action_attribute5 => p_action_attribute5
655 ,p_action_attribute6 => p_action_attribute6
656 ,p_action_attribute7 => p_action_attribute7
657 ,p_action_attribute8 => p_action_attribute8
658 ,p_action_attribute9 => p_action_attribute9
659 ,p_action_attribute10 => p_action_attribute10
660 ,p_condition_tbl => p_condition_tbl
661 ,x_return_status => l_return_status);
662
663 x_msg_count := FND_MSG_PUB.Count_Msg;
664 IF x_msg_count = 1 THEN
665 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
666 ,p_msg_index => 1
667 ,p_data => x_msg_data
668 ,p_msg_index_out => l_msg_index_out
669 );
670 END IF;
671
672 -- Reset the error stack when returning to the calling program
673 PA_DEBUG.Reset_Err_Stack;
674 -- If any errors exist then set the x_return_status to 'E'
675
676 IF x_msg_count > 0 THEN
677 x_return_status := FND_API.G_RET_STS_ERROR;
678 END IF;
679
680 -- Commit if the flag is set and there is no error
681 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
682 COMMIT;
683 END IF;
684
685 EXCEPTION
686 WHEN OTHERS THEN
687 IF p_commit = FND_API.G_TRUE THEN
688 ROLLBACK TO UPDATE_ACTION_SET_LINE_PUB;
689 END IF;
690
691 -- Set the excetption Message and the stack
692 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Update_Action_Set_Line'
693 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
694 --
695 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
696 RAISE;
697
698 END Update_Action_Set_Line;
699
700
701 PROCEDURE delete_action_set_line
702 (p_action_set_line_id IN pa_action_sets.action_set_id%TYPE := NULL
703 ,p_record_version_number IN pa_action_set_lines.record_version_number%TYPE := NULL
704 ,p_api_version IN NUMBER := 1.0
705 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
706 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
707 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
708 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
709 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
710 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
711 )
712 IS
713
714 l_return_status VARCHAR2(1);
715 l_msg_index_out NUMBER;
716 l_action_set_id NUMBER;
717 l_record_version_number NUMBER;
718 l_exists VARCHAR2(1);
719 l_debug_mode VARCHAR2(20) := 'N';
720
721 BEGIN
722
723 -- Initialize the Error Stack
724 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Delete_Action_Set_Line');
725
726 -- Bug 4403338
727 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
728
729 -- Initialize the return status to success
730 x_return_status := FND_API.G_RET_STS_SUCCESS;
731
732 --Clear the global PL/SQL message table
733 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
734 FND_MSG_PUB.initialize;
735 END IF;
736
737 -- Issue API savepoint if the transaction is to be committed
738 IF p_commit = FND_API.G_TRUE THEN
739 SAVEPOINT Delete_ACTION_SET_LINE_PUB;
740 END IF;
741
742 --Log Message: 4403338
743 IF l_debug_mode = 'Y' THEN
744 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Delete_Action_Set_Line.begin'
745 ,x_msg => 'Beginning of Delete_Action_Set_Line pub'
746 ,x_log_level => 5);
747 END IF;
748
749 BEGIN
750
751 SELECT record_version_number INTO l_record_version_number
752 FROM pa_action_set_lines
753 WHERE action_set_line_id = p_action_set_line_id
754 AND record_version_number = p_record_version_number;
755
756 EXCEPTION
757 WHEN NO_DATA_FOUND THEN
758 PA_UTILS.Add_Message( p_app_short_name => 'PA'
759 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
760
761 END;
762
763 PA_ACTION_SETS_PVT.delete_action_set_line
764 (p_action_set_line_id => p_action_set_line_id
765 ,p_record_version_number => p_record_version_number
766 ,x_return_status => l_return_status);
767
768 x_msg_count := FND_MSG_PUB.Count_Msg;
769 IF x_msg_count = 1 THEN
770 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
771 ,p_msg_index => 1
772 ,p_data => x_msg_data
773 ,p_msg_index_out => l_msg_index_out
774 );
775 END IF;
776
777 -- Reset the error stack when returning to the calling program
778 PA_DEBUG.Reset_Err_Stack;
779 -- If any errors exist then set the x_return_status to 'E'
780
781 IF x_msg_count > 0 THEN
782 x_return_status := FND_API.G_RET_STS_ERROR;
783 END IF;
784
785 -- Commit if the flag is set and there is no error
786 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
787 COMMIT;
788 END IF;
789
790 EXCEPTION
791 WHEN OTHERS THEN
792 IF p_commit = FND_API.G_TRUE THEN
793 ROLLBACK TO Delete_ACTION_SET_LINE_PUB;
794 END IF;
795
796 -- Set the excetption Message and the stack
797 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Delete_Action_Set_Line'
798 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
799 --
800 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
801 RAISE;
802
803 END Delete_Action_Set_Line;
804
805
806 PROCEDURE apply_action_set
807 (p_action_set_id IN pa_action_sets.action_set_id%TYPE := NULL
808 ,p_object_type IN pa_action_sets.object_type%TYPE := NULL
809 ,p_object_id IN pa_action_sets.object_id%TYPE := NULL
810 ,p_perform_action_set_flag IN VARCHAR2 := 'N'
811 ,p_api_version IN NUMBER := 1.0
812 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
813 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
814 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
815 ,x_new_action_set_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
816 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
817 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
818 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
819 )
820 IS
821
822 l_action_set_lines_tbl pa_action_set_utils.action_set_lines_tbl_type;
823 l_action_line_conditions_tbl pa_action_set_utils.action_line_cond_tbl_type;
824 l_new_action_set_id pa_action_sets.action_set_id%TYPE;
825 l_action_set_name pa_action_sets.action_set_name%TYPE;
826 l_action_set_type_code pa_action_set_types.action_set_type_code%TYPE;
827 l_description pa_action_sets.description%TYPE;
828 l_attribute_category pa_action_sets.attribute_category%TYPE;
829 l_attribute1 pa_action_sets.attribute1%TYPE;
830 l_attribute2 pa_action_sets.attribute2%TYPE;
831 l_attribute3 pa_action_sets.attribute3%TYPE;
832 l_attribute4 pa_action_sets.attribute4%TYPE;
833 l_attribute5 pa_action_sets.attribute5%TYPE;
834 l_attribute6 pa_action_sets.attribute6%TYPE;
835 l_attribute7 pa_action_sets.attribute7%TYPE;
836 l_attribute8 pa_action_sets.attribute8%TYPE;
837 l_attribute9 pa_action_sets.attribute9%TYPE;
838 l_attribute10 pa_action_sets.attribute10%TYPE;
839 l_attribute11 pa_action_sets.attribute11%TYPE;
840 l_attribute12 pa_action_sets.attribute12%TYPE;
841 l_attribute13 pa_action_sets.attribute13%TYPE;
842 l_attribute14 pa_action_sets.attribute14%TYPE;
843 l_attribute15 pa_action_sets.attribute15%TYPE;
844 l_action_set_line_id pa_action_set_line_cond.action_set_line_id%TYPE;
845 l_return_status VARCHAR2(1);
846 l_msg_index_out NUMBER;
847 l_msg_count NUMBER;
848 l_msg_data VARCHAR2(2000);
849 e_invalid_result_code EXCEPTION;
850 l_debug_mode VARCHAR2(20) := 'N';
851
852 BEGIN
853
854 -- Initialize the Error Stack
855 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Apply_Action_Set');
856
857 -- Bug 4403338
858 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
859
860 -- Initialize the return status to success
861 x_return_status := FND_API.G_RET_STS_SUCCESS;
862
863 --Clear the global PL/SQL message table
864 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
865 FND_MSG_PUB.initialize;
866 END IF;
867
868 -- Issue API savepoint if the transaction is to be committed
869 IF p_commit = FND_API.G_TRUE THEN
870 SAVEPOINT APPLY_ACTION_SET_PUB;
871 END IF;
872
873 --Log Message: 4403338
874 IF l_debug_mode = 'Y' THEN
875 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Apply_Action_Set.begin'
876 ,x_msg => 'Beginning of Apply_Action_Set pub'
877 ,x_log_level => 5);
878
879 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Apply_Action_Set'
880 ,x_msg => 'FND_MSG_PUB.Count_Msg = '||FND_MSG_PUB.Count_Msg
881 ,x_log_level => 5);
882 END IF;
883
884 SELECT
885 action_set_name,
886 action_set_type_code,
887 description,
888 attribute_category,
889 attribute1,
890 attribute2,
891 attribute3,
892 attribute4,
893 attribute5,
894 attribute6,
895 attribute7,
896 attribute8,
897 attribute9,
898 attribute10,
899 attribute11,
900 attribute12,
901 attribute13,
902 attribute14,
903 attribute15
904 INTO
905 l_action_set_name,
906 l_action_set_type_code,
907 l_description,
908 l_attribute_category,
909 l_attribute1,
910 l_attribute2,
911 l_attribute3,
912 l_attribute4,
913 l_attribute5,
914 l_attribute6,
915 l_attribute7,
916 l_attribute8,
917 l_attribute9,
918 l_attribute10,
919 l_attribute11,
920 l_attribute12,
921 l_attribute13,
922 l_attribute14,
923 l_attribute15
924 FROM pa_action_sets
925 WHERE action_set_id = p_action_set_id;
926
927 create_action_set(
928 p_action_set_type_code => l_action_set_type_code
929 ,p_action_set_name => l_action_set_name
930 ,p_object_type => p_object_type
931 ,p_object_id => p_object_id
932 ,p_start_date_active => NULL
933 ,p_end_date_active => NULL
934 ,p_action_set_template_flag => 'N'
935 ,p_source_action_set_id => p_action_set_id
936 ,p_description => l_description
937 ,p_attribute_category => l_attribute_category
938 ,p_attribute1 => l_attribute1
939 ,p_attribute2 => l_attribute2
940 ,p_attribute3 => l_attribute3
941 ,p_attribute4 => l_attribute4
942 ,p_attribute5 => l_attribute5
943 ,p_attribute6 => l_attribute6
944 ,p_attribute7 => l_attribute7
945 ,p_attribute8 => l_attribute8
946 ,p_attribute9 => l_attribute9
947 ,p_attribute10 => l_attribute10
948 ,p_attribute11 => l_attribute11
949 ,p_attribute12 => l_attribute12
950 ,p_attribute13 => l_attribute13
951 ,p_attribute14 => l_attribute14
952 ,p_attribute15 => l_attribute15
953 ,p_init_msg_list => FND_API.G_FALSE
954 ,x_action_set_id => x_new_action_set_id
955 ,x_return_status => l_return_status
956 ,x_msg_count => l_msg_count
957 ,x_msg_data => l_msg_data);
958
959
960
961 l_action_set_lines_tbl := PA_ACTION_SET_UTILS.get_action_set_lines(p_action_set_id => p_action_set_id);
962
963 IF l_action_set_lines_tbl.COUNT >0 THEN
964 FOR i IN l_action_set_lines_tbl.FIRST .. l_action_set_lines_tbl.LAST LOOP
965
966 l_action_line_conditions_tbl := PA_ACTION_SET_UTILS.get_action_line_conditions
967 (p_action_set_line_id => l_action_set_lines_tbl(i).action_set_line_id);
968
969 create_action_set_line(
970 p_action_set_id => x_new_action_set_id
971 ,p_description => l_action_set_lines_tbl(i).description
972 ,p_action_code => l_action_set_lines_tbl(i).action_code
973 ,p_action_attribute1 => l_action_set_lines_tbl(i).action_attribute1
974 ,p_action_attribute2 => l_action_set_lines_tbl(i).action_attribute2
975 ,p_action_attribute3 => l_action_set_lines_tbl(i).action_attribute3
976 ,p_action_attribute4 => l_action_set_lines_tbl(i).action_attribute4
977 ,p_action_attribute5 => l_action_set_lines_tbl(i).action_attribute5
978 ,p_action_attribute6 => l_action_set_lines_tbl(i).action_attribute6
979 ,p_action_attribute7 => l_action_set_lines_tbl(i).action_attribute7
980 ,p_action_attribute8 => l_action_set_lines_tbl(i).action_attribute8
981 ,p_action_attribute9 => l_action_set_lines_tbl(i).action_attribute9
982 ,p_action_attribute10 => l_action_set_lines_tbl(i).action_attribute10
983 ,p_condition_tbl => l_action_line_conditions_tbl
984 ,x_action_set_line_id => l_action_set_line_id
985 ,p_init_msg_list => FND_API.G_FALSE
986 ,x_return_status => l_return_status
987 ,x_msg_count => l_msg_count
988 ,x_msg_data => l_msg_data);
989
990 END LOOP;
991 END IF;
992
993 process_action_set(p_action_set_id => x_new_action_set_id
994 ,x_return_status => l_return_status
995 ,x_msg_count => l_msg_count
996 ,x_msg_data => l_msg_data);
997
998 IF p_perform_action_set_flag = 'Y' AND FND_MSG_PUB.Count_Msg = 0 THEN
999
1000 Perform_Single_Action_Set(p_action_set_id => x_new_action_set_id
1001 ,p_init_msg_list => FND_API.G_FALSE
1002 ,x_return_status => l_return_status
1003 ,x_msg_count => l_msg_count
1004 ,x_msg_data => l_msg_data);
1005
1006 END IF;
1007
1008 --Log Message: 4403338
1009 IF l_debug_mode = 'Y' THEN
1010 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Apply_Action_Set.begin'
1011 ,x_msg => 'calling Perform_Action_Set_Line pub'
1012 ,x_log_level => 5);
1013 END IF;
1014
1015 x_msg_count := FND_MSG_PUB.Count_Msg;
1016 IF x_msg_count = 1 THEN
1017 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
1018 ,p_msg_index => 1
1019 ,p_data => x_msg_data
1020 ,p_msg_index_out => l_msg_index_out
1021 );
1022 END IF;
1023
1024 IF x_msg_count > 0 THEN
1025 x_return_status := FND_API.G_RET_STS_ERROR;
1026 END IF;
1027
1028 -- Reset the error stack when returning to the calling program
1029 PA_DEBUG.Reset_Err_Stack;
1030 -- If any errors exist then set the x_return_status to 'E'
1031
1032 -- Commit if the flag is set and there is no error
1033 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
1034 COMMIT;
1035 END IF;
1036
1037 EXCEPTION
1038 WHEN OTHERS THEN
1039 IF p_commit = FND_API.G_TRUE THEN
1040 ROLLBACK TO APPLY_ACTION_SET_PUB;
1041 END IF;
1042
1043 -- Set the excetption Message and the stack
1044 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Apply_Action_Set'
1045 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1046 --
1047 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1048 RAISE;
1049
1050 END;
1051
1052
1053 PROCEDURE replace_action_set
1054 (p_current_action_set_id IN pa_action_sets.action_set_id%TYPE := NULL
1055 ,p_action_set_type_code IN pa_action_set_types.action_set_type_code%TYPE := NULL
1056 ,p_object_type IN pa_action_sets.object_type%TYPE := NULL
1057 ,p_object_id IN pa_action_sets.object_id%TYPE := NULL
1058 ,p_record_version_number IN pa_action_sets.record_version_number%TYPE
1059 ,p_new_action_set_id IN pa_action_sets.action_set_id%TYPE
1060 ,p_api_version IN NUMBER := 1.0
1061 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1062 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1063 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1064 ,x_new_action_set_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1065 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1066 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1067 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1068 ) IS
1069
1070 l_return_status VARCHAR2(1);
1071 l_msg_index_out NUMBER;
1072 l_msg_count NUMBER;
1073 l_msg_data VARCHAR2(2000);
1074 l_action_set_id pa_action_sets.action_set_id%TYPE;
1075 l_new_action_set_id pa_action_sets.action_set_id%TYPE;
1076 l_current_action_set_id pa_action_sets.action_set_id%TYPE;
1077 e_invalid_result_code EXCEPTION;
1078 l_debug_mode VARCHAR2(20) := 'N';
1079
1080 BEGIN
1081
1082 -- Initialize the Error Stack
1083 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Replace_Action_Set');
1084
1085 -- Bug 4370082
1086 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
1087
1088 -- Initialize the return status to success
1089 x_return_status := FND_API.G_RET_STS_SUCCESS;
1090
1091 --Clear the global PL/SQL message table
1092 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
1093 FND_MSG_PUB.initialize;
1094 END IF;
1095
1096 -- Issue API savepoint if the transaction is to be committed
1097 IF p_commit = FND_API.G_TRUE THEN
1098 SAVEPOINT REPLACE_ACTION_SET_PUB;
1099 END IF;
1100
1101 --Log Message: 4370082
1102 IF l_debug_mode = 'Y' THEN
1103 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Replace_Action_Set.begin'
1104 ,x_msg => 'Beginning of Replace_Action_Set pub'
1105 ,x_log_level => 5);
1106 END IF;
1107
1108 l_current_action_set_id := p_current_action_set_id;
1109
1110 IF l_current_action_set_id IS NULL THEN
1111 l_current_action_set_id := PA_ACTION_SET_UTILS.get_action_set_id
1112 (p_action_set_type_code => p_action_set_type_code,
1113 p_object_type => p_object_type,
1114 p_object_id => p_object_id);
1115 END IF;
1116
1117
1118 delete_action_set(
1119 p_action_set_id => l_current_action_set_id
1120 ,p_record_version_number => p_record_version_number
1121 ,p_init_msg_list => FND_API.G_FALSE
1122 ,x_return_status => l_return_status
1123 ,x_msg_count => l_msg_count
1124 ,x_msg_data => l_msg_data);
1125
1126 IF FND_MSG_PUB.Count_Msg = 0 THEN
1127
1128 --Log Message: 4370082
1129 IF l_debug_mode = 'Y' THEN
1130 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Replace_Action_Set.begin'
1131 ,x_msg => 'calling Apply_Action_Set pub'
1132 ,x_log_level => 5);
1133 END IF;
1134
1135 Apply_Action_Set(p_action_set_id => p_new_action_set_id
1136 ,p_object_type => p_object_type
1137 ,p_object_id => p_object_id
1138 ,p_init_msg_list => FND_API.G_FALSE
1139 ,x_new_action_set_id => x_new_action_set_id
1140 ,x_return_status => l_return_status
1141 ,x_msg_count => l_msg_count
1142 ,x_msg_data => l_msg_data);
1143
1144 END IF;
1145
1146
1147 x_msg_count := FND_MSG_PUB.Count_Msg;
1148 IF x_msg_count = 1 THEN
1149 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
1150 ,p_msg_index => 1
1151 ,p_data => x_msg_data
1152 ,p_msg_index_out => l_msg_index_out
1153 );
1154 END IF;
1155
1156 -- Reset the error stack when returning to the calling program
1157 PA_DEBUG.Reset_Err_Stack;
1158 -- If any errors exist then set the x_return_status to 'E'
1159
1160 IF x_msg_count > 0 THEN
1161 x_return_status := FND_API.G_RET_STS_ERROR;
1162 END IF;
1163
1164 -- Commit if the flag is set and there is no error
1165 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
1166 COMMIT;
1167 END IF;
1168
1169 EXCEPTION
1170 WHEN e_invalid_result_code THEN
1171 /*
1172 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PVT.Perform_Action_Set_Line'
1173 ,p_procedure_name => 'INVALID RESULTS CODE: '||l_action_line_result_code);
1174 --
1175 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1176 */
1177 RAISE;
1178 WHEN OTHERS THEN
1179 IF p_commit = FND_API.G_TRUE THEN
1180 ROLLBACK TO REPLACE_ACTION_SET;
1181 END IF;
1182
1183 -- Set the excetption Message and the stack
1184 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Replace_Action_Set'
1185 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1186 --
1187 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1188 RAISE;
1189
1190 END;
1191
1192
1193
1194 PROCEDURE perform_single_action_set
1195 (p_action_set_id IN pa_action_sets.action_set_id%TYPE := NULL
1196 ,p_action_set_type_code IN pa_action_set_types.action_set_type_code%TYPE := NULL
1197 ,p_object_type IN pa_action_sets.object_type%TYPE := NULL
1198 ,p_object_id IN pa_action_sets.object_id%TYPE := NULL
1199 ,p_api_version IN NUMBER := 1.0
1200 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1201 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1202 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1203 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1204 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1205 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1206 ) IS
1207
1208 l_return_status VARCHAR2(1);
1209 l_msg_index_out NUMBER;
1210 l_msg_count NUMBER;
1211 l_msg_data VARCHAR2(2000);
1212 l_action_set_id pa_action_sets.action_set_id%TYPE;
1213 l_action_set_type_code pa_action_set_types.action_set_type_code%TYPE;
1214 e_invalid_result_code EXCEPTION;
1215
1216 CURSOR get_action_set_lines(p_action_set_id IN NUMBER) IS
1217 SELECT action_set_line_id
1218 FROM pa_action_set_lines l,
1219 pa_action_sets s
1220 WHERE s.action_set_id = p_action_set_id
1221 AND s.action_set_id = l.action_set_id
1222 AND s.status_code IN ('STARTED','RESUMED')
1223 AND l.status_code IN ('PENDING','ACTIVE','REVERSE_PENDING','UPDATE_PENDING')
1224 ORDER BY l.action_set_line_number;
1225
1226 TYPE number_tbl_type IS TABLE OF NUMBER
1227 INDEX BY BINARY_INTEGER;
1228 l_action_set_line_id_tbl number_tbl_type;
1229
1230 l_debug_mode VARCHAR2(20) := 'N';
1231
1232 BEGIN
1233
1234 -- Initialize the Error Stack
1235 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.Perform_Single_Action_Set');
1236
1237 -- Bug 4370082
1238 fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
1239
1240 -- Initialize the return status to success
1241 x_return_status := FND_API.G_RET_STS_SUCCESS;
1242
1243 --Clear the global PL/SQL message table
1244 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
1245 FND_MSG_PUB.initialize;
1246 END IF;
1247
1248 -- Issue API savepoint if the transaction is to be committed
1249 IF p_commit = FND_API.G_TRUE THEN
1250 SAVEPOINT PERFORM_SINGLE_ACTION_SET_PUB;
1251 END IF;
1252
1253 --Log Message: 4370082
1254 IF l_debug_mode = 'Y' THEN
1255 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PUB.Perform_Single_Action_Set.begin'
1256 ,x_msg => 'Beginning of Perform_Single_Action_Set pub'
1257 ,x_log_level => 5);
1258 END IF;
1259
1260 PA_ACTION_SET_UTILS.G_ERROR_EXISTS := 'N';
1261 -- PA_ACTION_SETS_PVT.g_line_errors_tbl.DELETE;
1262
1263 l_action_set_type_code := p_action_set_type_code;
1264
1265 IF l_action_set_type_code IS NULL THEN
1266 SELECT action_set_type_code INTO l_action_set_type_code
1267 FROM pa_action_sets
1268 WHERE action_set_id = p_action_set_id;
1269 END IF;
1270
1271 l_action_set_id := p_action_set_id;
1272
1273 IF l_action_set_id IS NULL THEN
1274 l_action_set_id := PA_ACTION_SET_UTILS.get_action_set_id
1275 (p_action_set_type_code => l_action_set_type_code,
1276 p_object_type => p_object_type,
1277 p_object_id => p_object_id);
1278 END IF;
1279
1280 OPEN get_action_set_lines(l_action_set_id);
1281 FETCH get_action_set_lines BULK COLLECT INTO l_action_set_line_id_tbl;
1282 CLOSE get_action_set_lines;
1283
1284 --Log Message: 4370082
1285 IF l_debug_mode = 'Y' THEN
1286 PA_DEBUG.write_log (x_module => 'pa.plsql.PA_ACTION_SETS_PVT.Perform_Action_Set_Line'
1287 ,x_msg => 'calling Perform_ActionSet_Line pvt'
1288 ,x_log_level => 5);
1289 END IF;
1290
1291 IF l_action_set_line_id_tbl.COUNT > 0 THEN
1292
1293 FOR i IN l_action_set_line_id_tbl.FIRST .. l_action_set_line_id_tbl.LAST LOOP
1294
1295 FND_MSG_PUB.initialize;
1296
1297 PA_ACTION_SETS_PVT.Perform_Action_Set_Line(p_action_set_type_code => l_action_set_type_code ,
1298 p_action_set_line_id => l_action_set_line_id_tbl(i)
1299 ,x_return_status => l_return_status);
1300
1301 END LOOP;
1302
1303 -- 2452311: Need to initialize the error stack after performing the last
1304 -- action set line.
1305 FND_MSG_PUB.initialize;
1306
1307 END IF;
1308
1309 x_msg_count := FND_MSG_PUB.Count_Msg;
1310 IF x_msg_count = 1 THEN
1311 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
1312 ,p_msg_index => 1
1313 ,p_data => x_msg_data
1314 ,p_msg_index_out => l_msg_index_out
1315 );
1316 END IF;
1317
1318 -- Reset the error stack when returning to the calling program
1319 PA_DEBUG.Reset_Err_Stack;
1320 -- If any errors exist then set the x_return_status to 'E'
1321
1322 IF x_msg_count > 0 OR PA_ACTION_SET_UTILS.G_ERROR_EXISTS = 'Y' THEN
1323 x_return_status := FND_API.G_RET_STS_ERROR;
1324 END IF;
1325
1326 -- Commit if the flag is set and there is no error
1327 IF p_commit = FND_API.G_TRUE AND x_msg_count = 0 THEN
1328 COMMIT;
1329 END IF;
1330
1331 EXCEPTION
1332 WHEN OTHERS THEN
1333 IF p_commit = FND_API.G_TRUE THEN
1334 ROLLBACK TO PERFORM_SINGLE_ACTION_SET;
1335 END IF;
1336
1337 -- Set the excetption Message and the stack
1338 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Perform_Single_Action_Set'
1339 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1340 --
1341 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1342 RAISE;
1343
1344 END;
1345
1346
1347 PROCEDURE Perform_Action_Sets(p_action_set_type_code IN VARCHAR2,
1348 p_project_number_from IN VARCHAR2,
1349 p_project_number_to IN VARCHAR2,
1350 p_debug_mode IN VARCHAR2,
1351 x_return_status OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
1352 IS
1353
1354 l_action_set_type_code_tbl pa_action_set_utils.varchar_tbl_type;
1355 l_action_set_line_id_tbl pa_action_set_utils.action_set_line_id_tbl_type;
1356 l_object_name_tbl pa_action_set_utils.object_name_tbl_type;
1357 l_project_number_tbl pa_action_set_utils.project_number_tbl_type;
1358 l_return_status VARCHAR2(1);
1359 e_invalid_result_code EXCEPTION;
1360
1361 BEGIN
1362 /*
1363 --TESTING
1364 DELETE from pa_action_set_report_temp;
1365 INSERT INTO pa_action_set_report_temp(action_set_line_id,
1366 project_number,
1367 object_name)
1368 select action_set_line_id, 'OBJ NAME', 'PROJ NAME'
1369 from pa_action_set_lines;
1370 */
1371
1372 IF p_debug_mode = 'Y' THEN
1373
1374 FND_FILE.PUT_LINE(FND_FILE.LOG,'p_action_set_type_code='||p_action_set_type_code);
1375 FND_FILE.PUT_LINE(FND_FILE.LOG,'p_project_number_from='||p_project_number_from);
1376 FND_FILE.PUT_LINE(FND_FILE.LOG,'p_project_number_to='||p_project_number_to);
1377 FND_FILE.PUT_LINE(FND_FILE.LOG,'user_id='||FND_GLOBAL.user_id);
1378 FND_FILE.PUT_LINE(FND_FILE.LOG,'concurrent request id='||FND_GLOBAL.CONC_REQUEST_ID);
1379
1380 END IF;
1381
1382 DELETE FROM pa_action_set_report_temp;
1383
1384 IF p_action_set_type_code IS NULL THEN
1385 SELECT action_set_type_code BULK COLLECT INTO l_action_set_type_code_tbl
1386 FROM pa_action_set_types;
1387 ELSE
1388 l_action_set_type_code_tbl(1) := p_action_set_type_code;
1389 END IF;
1390
1391 IF l_action_set_type_code_tbl.COUNT > 0 THEN
1392
1393 FOR i IN l_action_set_type_code_tbl.FIRST .. l_action_set_type_code_tbl.LAST LOOP
1394
1395 IF p_debug_mode = 'Y' THEN
1396 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Action Set Type Code = '||l_action_set_type_code_tbl(i));
1397 FND_FILE.PUT_LINE(FND_FILE.LOG, 'About to get action set line ids');
1398 END IF;
1399
1400 PA_ACTION_SETS_DYN.get_action_set_line_ids(p_action_set_type_code => l_action_set_type_code_tbl(i),
1401 p_project_number_from => p_project_number_from,
1402 p_project_number_to => p_project_number_to,
1403 x_action_set_line_id_tbl => l_action_set_line_id_tbl,
1404 x_object_name_tbl => l_object_name_tbl,
1405 x_project_number_tbl => l_project_number_tbl);
1406
1407 IF p_debug_mode = 'Y' THEN
1408 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Done getting action set line ids');
1409 END IF;
1410
1411 IF l_action_set_line_id_tbl.COUNT > 0 THEN
1412
1413 FORALL k IN l_action_set_line_id_tbl.FIRST .. l_action_set_line_id_tbl.LAST
1414 INSERT INTO pa_action_set_report_temp(action_set_line_id,
1415 project_number,
1416 object_name)
1417 VALUES(l_action_set_line_id_tbl(k),
1418 l_project_number_tbl(k),
1419 l_object_name_tbl(k));
1420
1421 FOR j IN l_action_set_line_id_tbl.FIRST .. l_action_set_line_id_tbl.LAST LOOP
1422
1423 FND_MSG_PUB.initialize;
1424
1425 IF p_debug_mode = 'Y' THEN
1426 FND_FILE.PUT_LINE(FND_FILE.LOG, 'About to perform action set line id '||l_action_set_line_id_tbl(j));
1427 END IF;
1428
1429 PA_ACTION_SETS_PVT.perform_action_set_line(p_action_set_type_code => l_action_set_type_code_tbl(i),
1430 p_action_set_line_id => l_action_set_line_id_tbl(j),
1431 x_return_status => l_return_status);
1432
1433 COMMIT;
1434
1435 IF p_debug_mode = 'Y' THEN
1436 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Done performing action set line id '||l_action_set_line_id_tbl(j));
1437 END IF;
1438
1439 END LOOP;
1440
1441 END IF;
1442
1443 END LOOP;
1444
1445 END IF;
1446
1447 EXCEPTION
1448 WHEN e_invalid_result_code THEN
1449 /*
1450 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PVT.Perform_Action_Set_Line'
1451 ,p_procedure_name => 'INVALID RESULTS CODE: '||l_action_line_result_code);
1452 --
1453 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1454 */
1455 RAISE;
1456
1457 WHEN OTHERS THEN
1458 -- Set the excetption Message and the stack
1459 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PVT.Perform_Action_Set_Line'
1460 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1461 --
1462 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1463 RAISE;
1464
1465
1466 END;
1467
1468
1469
1470 PROCEDURE create_line_single_cond
1471 (p_action_set_id IN pa_action_sets.action_set_id%TYPE
1472 ,p_use_def_description_flag IN VARCHAR2 := 'Y'
1473 ,p_action_description IN pa_action_set_lines.description%TYPE := NULL
1474 ,p_action_set_line_number IN pa_action_set_lines.action_set_line_number%TYPE := NULL
1475 ,p_action_code IN pa_action_set_lines.action_code%TYPE
1476 ,p_action_attribute1 IN pa_action_set_lines.action_attribute1%TYPE := NULL
1477 ,p_action_attribute2 IN pa_action_set_lines.action_attribute2%TYPE := NULL
1478 ,p_action_attribute3 IN pa_action_set_lines.action_attribute3%TYPE := NULL
1479 ,p_action_attribute4 IN pa_action_set_lines.action_attribute4%TYPE := NULL
1480 ,p_action_attribute5 IN pa_action_set_lines.action_attribute5%TYPE := NULL
1481 ,p_action_attribute6 IN pa_action_set_lines.action_attribute6%TYPE := NULL
1482 ,p_action_attribute7 IN pa_action_set_lines.action_attribute7%TYPE := NULL
1483 ,p_action_attribute8 IN pa_action_set_lines.action_attribute8%TYPE := NULL
1484 ,p_action_attribute9 IN pa_action_set_lines.action_attribute9%TYPE := NULL
1485 ,p_action_attribute10 IN pa_action_set_lines.action_attribute10%TYPE := NULL
1486 ,p_condition_description IN pa_action_set_line_cond.description%TYPE := NULL
1487 ,p_condition_code IN pa_action_set_line_cond.condition_code%TYPE
1488 ,p_condition_attribute1 IN pa_action_set_line_cond.condition_attribute1%TYPE := NULL
1489 ,p_condition_attribute2 IN pa_action_set_line_cond.condition_attribute2%TYPE := NULL
1490 ,p_condition_attribute3 IN pa_action_set_line_cond.condition_attribute3%TYPE := NULL
1491 ,p_condition_attribute4 IN pa_action_set_line_cond.condition_attribute4%TYPE := NULL
1492 ,p_condition_attribute5 IN pa_action_set_line_cond.condition_attribute5%TYPE := NULL
1493 ,p_condition_attribute6 IN pa_action_set_line_cond.condition_attribute6%TYPE := NULL
1494 ,p_condition_attribute7 IN pa_action_set_line_cond.condition_attribute7%TYPE := NULL
1495 ,p_condition_attribute8 IN pa_action_set_line_cond.condition_attribute8%TYPE := NULL
1496 ,p_condition_attribute9 IN pa_action_set_line_cond.condition_attribute9%TYPE := NULL
1497 ,p_condition_attribute10 IN pa_action_set_line_cond.condition_attribute10%TYPE := NULL
1498 ,p_api_version IN NUMBER := 1.0
1499 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1500 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1501 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1502 ,x_action_set_line_id OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1503 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1504 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1505 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1506 )
1507 IS
1508
1509 l_condition_tbl pa_action_set_utils.action_line_cond_tbl_type;
1510 l_action_set_template_flag pa_action_sets.action_set_template_flag%TYPE;
1511
1512 BEGIN
1513
1514 -- Initialize the Error Stack
1515 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.create_line_single_cond');
1516
1517 -- Initialize the return status to success
1518 x_return_status := FND_API.G_RET_STS_SUCCESS;
1519
1520 l_condition_tbl(1).condition_code := p_condition_code;
1521 l_condition_tbl(1).description := p_condition_description;
1522 l_condition_tbl(1).condition_attribute1 := p_condition_attribute1;
1523 l_condition_tbl(1).condition_attribute2 := p_condition_attribute2;
1524 l_condition_tbl(1).condition_attribute3 := p_condition_attribute3;
1525 l_condition_tbl(1).condition_attribute4 := p_condition_attribute4;
1526 l_condition_tbl(1).condition_attribute5 := p_condition_attribute5;
1527 l_condition_tbl(1).condition_attribute6 := p_condition_attribute6;
1528 l_condition_tbl(1).condition_attribute7 := p_condition_attribute7;
1529 l_condition_tbl(1).condition_attribute8 := p_condition_attribute8;
1530 l_condition_tbl(1).condition_attribute9 := p_condition_attribute9;
1531 l_condition_tbl(1).condition_attribute10 := p_condition_attribute10;
1532
1533 create_action_set_line
1534 (p_action_set_id => p_action_set_id
1535 ,p_description => p_action_description
1536 ,p_action_set_line_number => p_action_set_line_number
1537 ,p_action_code => p_action_code
1538 ,p_action_attribute1 => p_action_attribute1
1539 ,p_action_attribute2 => p_action_attribute2
1540 ,p_action_attribute3 => p_action_attribute3
1541 ,p_action_attribute4 => p_action_attribute4
1542 ,p_action_attribute5 => p_action_attribute5
1543 ,p_action_attribute6 => p_action_attribute6
1544 ,p_action_attribute7 => p_action_attribute7
1545 ,p_action_attribute8 => p_action_attribute8
1546 ,p_action_attribute9 => p_action_attribute9
1547 ,p_action_attribute10 => p_action_attribute10
1548 ,p_condition_tbl => l_condition_tbl
1549 ,p_init_msg_list => p_init_msg_list
1550 ,p_commit => p_commit
1551 ,p_validate_only => p_validate_only
1552 ,x_action_set_line_id => x_action_set_line_id
1553 ,x_return_status => x_return_status
1554 ,x_msg_count => x_msg_count
1555 ,x_msg_data => x_msg_data);
1556
1557 -- 2452316: Need to set MOD_SOURCE_ACTION_SET_FLAG = 'Y' when a new line
1558 -- is added from self-service page. Should not put this logic in
1559 -- PA_ACTION_SET_PVT.create_action_set_line because that is also called when
1560 -- an action set is created for the first time.
1561 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1562 SELECT action_set_template_flag
1563 INTO l_action_set_template_flag
1564 FROM pa_action_sets
1565 WHERE action_set_id = p_action_set_id;
1566
1567 IF l_action_set_template_flag = 'N' THEN
1568 UPDATE pa_action_sets
1569 SET MOD_SOURCE_ACTION_SET_FLAG = 'Y'
1570 WHERE action_set_id = p_action_set_id;
1571 END IF;
1572 END IF;
1573
1574 EXCEPTION
1575 WHEN OTHERS THEN
1576
1577 -- Set the excetption Message and the stack
1578 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.create_line_single_cond'
1579 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1580 --
1581 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1582 RAISE;
1583
1584 END;
1585
1586
1587 PROCEDURE update_line_single_cond
1588 (p_action_set_line_id IN pa_action_sets.action_set_id%TYPE
1589 ,p_record_version_number IN NUMBER := NULL
1590 ,p_action_description IN pa_action_set_lines.description%TYPE := FND_API.G_MISS_CHAR
1591 ,p_action_code IN pa_action_set_lines.action_code%TYPE
1592 ,p_action_attribute1 IN pa_action_set_lines.action_attribute1%TYPE := FND_API.G_MISS_CHAR
1593 ,p_action_attribute2 IN pa_action_set_lines.action_attribute2%TYPE := FND_API.G_MISS_CHAR
1594 ,p_action_attribute3 IN pa_action_set_lines.action_attribute3%TYPE := FND_API.G_MISS_CHAR
1595 ,p_action_attribute4 IN pa_action_set_lines.action_attribute4%TYPE := FND_API.G_MISS_CHAR
1596 ,p_action_attribute5 IN pa_action_set_lines.action_attribute5%TYPE := FND_API.G_MISS_CHAR
1597 ,p_action_attribute6 IN pa_action_set_lines.action_attribute6%TYPE := FND_API.G_MISS_CHAR
1598 ,p_action_attribute7 IN pa_action_set_lines.action_attribute7%TYPE := FND_API.G_MISS_CHAR
1599 ,p_action_attribute8 IN pa_action_set_lines.action_attribute8%TYPE := FND_API.G_MISS_CHAR
1600 ,p_action_attribute9 IN pa_action_set_lines.action_attribute9%TYPE := FND_API.G_MISS_CHAR
1601 ,p_action_attribute10 IN pa_action_set_lines.action_attribute10%TYPE := FND_API.G_MISS_CHAR
1602 ,p_condition_description IN pa_action_set_line_cond.description%TYPE := FND_API.G_MISS_CHAR
1603 ,p_condition_code IN pa_action_set_line_cond.condition_code%TYPE
1604 ,p_condition_attribute1 IN pa_action_set_line_cond.condition_attribute1%TYPE := FND_API.G_MISS_CHAR
1605 ,p_condition_attribute2 IN pa_action_set_line_cond.condition_attribute2%TYPE := FND_API.G_MISS_CHAR
1606 ,p_condition_attribute3 IN pa_action_set_line_cond.condition_attribute3%TYPE := FND_API.G_MISS_CHAR
1607 ,p_condition_attribute4 IN pa_action_set_line_cond.condition_attribute4%TYPE := FND_API.G_MISS_CHAR
1608 ,p_condition_attribute5 IN pa_action_set_line_cond.condition_attribute5%TYPE := FND_API.G_MISS_CHAR
1609 ,p_condition_attribute6 IN pa_action_set_line_cond.condition_attribute6%TYPE := FND_API.G_MISS_CHAR
1610 ,p_condition_attribute7 IN pa_action_set_line_cond.condition_attribute7%TYPE := FND_API.G_MISS_CHAR
1611 ,p_condition_attribute8 IN pa_action_set_line_cond.condition_attribute8%TYPE := FND_API.G_MISS_CHAR
1612 ,p_condition_attribute9 IN pa_action_set_line_cond.condition_attribute9%TYPE := FND_API.G_MISS_CHAR
1613 ,p_condition_attribute10 IN pa_action_set_line_cond.condition_attribute10%TYPE := FND_API.G_MISS_CHAR
1614 ,p_api_version IN NUMBER := 1.0
1615 ,p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE
1616 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
1617 ,p_validate_only IN VARCHAR2 := FND_API.G_TRUE
1618 ,x_return_status OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1619 ,x_msg_count OUT NOCOPY NUMBER --File.Sql.39 bug 4440895
1620 ,x_msg_data OUT NOCOPY VARCHAR2 --File.Sql.39 bug 4440895
1621 )
1622 IS
1623
1624 l_condition_tbl pa_action_set_utils.action_line_cond_tbl_type;
1625 l_action_set_template_flag pa_action_sets.action_set_template_flag%TYPE;
1626 l_action_set_id pa_action_sets.action_set_id%TYPE;
1627
1628 BEGIN
1629
1630 -- Initialize the Error Stack
1631 PA_DEBUG.init_err_stack('PA_ACTION_SETS_PUB.update_line_single_cond');
1632
1633 -- Initialize the return status to success
1634 x_return_status := FND_API.G_RET_STS_SUCCESS;
1635
1636 l_condition_tbl(1).condition_code := p_condition_code;
1637 l_condition_tbl(1).description := p_condition_description;
1638 l_condition_tbl(1).condition_attribute1 := p_condition_attribute1;
1639 l_condition_tbl(1).condition_attribute2 := p_condition_attribute2;
1640 l_condition_tbl(1).condition_attribute3 := p_condition_attribute3;
1641 l_condition_tbl(1).condition_attribute4 := p_condition_attribute4;
1642 l_condition_tbl(1).condition_attribute5 := p_condition_attribute5;
1643 l_condition_tbl(1).condition_attribute6 := p_condition_attribute6;
1644 l_condition_tbl(1).condition_attribute7 := p_condition_attribute7;
1645 l_condition_tbl(1).condition_attribute8 := p_condition_attribute8;
1646 l_condition_tbl(1).condition_attribute9 := p_condition_attribute9;
1647 l_condition_tbl(1).condition_attribute10 := p_condition_attribute10;
1648
1649 SELECT action_set_line_condition_id INTO l_condition_tbl(1).action_set_line_condition_id
1650 FROM pa_action_set_line_cond
1651 WHERE action_set_line_id = p_action_set_line_id;
1652
1653 update_action_set_line
1654 (p_action_set_line_id => p_action_set_line_id
1655 ,p_record_version_number => p_record_version_number
1656 ,p_description => p_action_description
1657 ,p_action_code => p_action_code
1658 ,p_action_attribute1 => p_action_attribute1
1659 ,p_action_attribute2 => p_action_attribute2
1660 ,p_action_attribute3 => p_action_attribute3
1661 ,p_action_attribute4 => p_action_attribute4
1662 ,p_action_attribute5 => p_action_attribute5
1663 ,p_action_attribute6 => p_action_attribute6
1664 ,p_action_attribute7 => p_action_attribute7
1665 ,p_action_attribute8 => p_action_attribute8
1666 ,p_action_attribute9 => p_action_attribute9
1667 ,p_action_attribute10 => p_action_attribute10
1668 ,p_condition_tbl => l_condition_tbl
1669 ,p_init_msg_list => p_init_msg_list
1670 ,p_commit => p_commit
1671 ,p_validate_only => p_validate_only
1672 ,x_return_status => x_return_status
1673 ,x_msg_count => x_msg_count
1674 ,x_msg_data => x_msg_data);
1675
1676 -- 2452316: Need to set MOD_SOURCE_ACTION_SET_FLAG = 'Y' when updating a line
1677 -- from self-service page. Should not put this logic in
1678 -- PA_ACTION_SET_PVT.update_action_set_line because that could be called when
1679 -- a line is performed.
1680 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1681 SELECT s.action_set_template_flag, s.action_set_id
1682 INTO l_action_set_template_flag, l_action_set_id
1683 FROM pa_action_sets s, pa_action_set_lines l
1684 WHERE l.action_set_line_id = p_action_set_line_id
1685 AND s.action_set_id = l.action_set_id;
1686
1687 IF l_action_set_template_flag = 'N' THEN
1688 UPDATE pa_action_sets
1689 SET MOD_SOURCE_ACTION_SET_FLAG = 'Y'
1690 WHERE action_set_id = l_action_set_id;
1691 END IF;
1692 END IF;
1693
1694 EXCEPTION
1695 WHEN OTHERS THEN
1696
1697 -- Set the excetption Message and the stack
1698 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.update_line_single_cond'
1699 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1700 --
1701 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1702 RAISE;
1703
1704 END;
1705
1706
1707 PROCEDURE process_action_set(p_action_set_id IN NUMBER,
1708 x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
1709 x_msg_count OUT NOCOPY NUMBER, --File.Sql.39 bug 4440895
1710 x_msg_data OUT NOCOPY VARCHAR2) --File.Sql.39 bug 4440895
1711 IS
1712
1713 l_return_status VARCHAR2(1);
1714 l_msg_index_out NUMBER;
1715 l_action_set_template_flag VARCHAR2(1);
1716 l_action_set_type_code VARCHAR2(30);
1717
1718 BEGIN
1719
1720 -- Initialize the return status to success
1721 x_return_status := FND_API.G_RET_STS_SUCCESS;
1722
1723 FND_MSG_PUB.initialize;
1724
1725 SELECT action_set_template_flag, action_set_type_code INTO l_action_set_template_flag, l_action_set_type_code
1726 FROM pa_action_sets
1727 WHERE action_set_id = p_action_set_id;
1728
1729 PA_ACTION_SETS_DYN.Process_Action_Set(p_action_set_type_code => l_action_set_type_code,
1730 p_action_set_id => p_action_set_id,
1731 p_action_set_template_flag => l_action_set_template_flag,
1732 x_return_status => l_return_status);
1733
1734 x_msg_count := FND_MSG_PUB.Count_Msg;
1735 IF x_msg_count = 1 THEN
1736 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
1737 ,p_msg_index => 1
1738 ,p_data => x_msg_data
1739 ,p_msg_index_out => l_msg_index_out
1740 );
1741 END IF;
1742
1743 -- Reset the error stack when returning to the calling program
1744 PA_DEBUG.Reset_Err_Stack;
1745 -- If any errors exist then set the x_return_status to 'E'
1746
1747 IF x_msg_count > 0 THEN
1748 x_return_status := FND_API.G_RET_STS_ERROR;
1749 END IF;
1750
1751 EXCEPTION
1752 WHEN OTHERS THEN
1753 -- Set the excetption Message and the stack
1754 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_ACTION_SETS_PUB.Validate_Action_Set'
1755 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
1756 --
1757 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1758 RAISE;
1759
1760 END;
1761
1762
1763 END pa_action_sets_pub;