DBA Data[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;