DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_SCORERESULT_PUB

Source


1 PACKAGE BODY AMS_Scoreresult_PUB as
2 /* $Header: amspdrsb.pls 115.4 2002/01/07 18:52:10 pkm ship      $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_Scoreresult_PUB
7 -- Purpose
8 --
9 -- History
10 -- 24-Jan-2001 choang   Created.
11 -- 12-Feb-2001 choang   Removed savepoint and rollback, and changed to use
12 --                      table handler instead of private api.
13 -- 16-Sep-2001 choang   Removed tree_node references.
14 -- 07-Jan-2002 choang   Removed security group id
15 --
16 -- NOTE
17 --
18 -- End of Comments
19 -- ===============================================================
20 
21 
22 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Scoreresult_PUB';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amspdrsb.pls';
24 
25 PROCEDURE Create_Scoreresult(
26     p_api_version       IN   NUMBER,
27     p_init_msg_list     IN   VARCHAR2 := FND_API.G_FALSE,
28     p_commit            IN   VARCHAR2 := FND_API.G_FALSE,
29 
30     x_return_status     OUT  VARCHAR2,
31     x_msg_count         OUT  NUMBER,
32     x_msg_data          OUT  VARCHAR2,
33 
34     p_scoreresult_rec   IN   scoreresult_rec_type  := g_miss_scoreresult_rec,
35     x_score_result_id   OUT  NUMBER
36 )
37 IS
38    L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Scoreresult';
39    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
40    l_pvt_scoreresult_rec    AMS_Scoreresult_PVT.scoreresult_rec_type;
41 BEGIN
42       -- Standard Start of API savepoint
43       SAVEPOINT CREATE_Scoreresult_PUB;
44 
45       -- Standard call to check for call compatibility.
46       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
47                                            p_api_version,
48                                            l_api_name,
49                                            G_PKG_NAME)
50       THEN
51           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52       END IF;
53 
54       -- Initialize message list if p_init_msg_list is set to TRUE.
55       IF FND_API.to_Boolean( p_init_msg_list )
56       THEN
57          FND_MSG_PUB.initialize;
58       END IF;
59 
60       -- Debug Message
61       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
62 
63 
64       -- Initialize API return status to SUCCESS
65       x_return_status := FND_API.G_RET_STS_SUCCESS;
66 
67       --
68       -- API body
69       --
70 
71       -- Assign public record values to private record for API
72       l_pvt_scoreresult_rec.score_result_id := p_scoreresult_rec.score_result_id;
73       l_pvt_scoreresult_rec.score_id := p_scoreresult_rec.score_id;
74 --      l_pvt_scoreresult_rec.tree_node := p_scoreresult_rec.tree_node;
75       l_pvt_scoreresult_rec.num_records := p_scoreresult_rec.num_records;
76       l_pvt_scoreresult_rec.score := p_scoreresult_rec.response;
77       l_pvt_scoreresult_rec.confidence := p_scoreresult_rec.confidence;
78 
79       -- Calling Private package: Create_Scoreresult
80       AMS_Scoreresult_PVT.Create_Scoreresult(
81          p_api_version         => 1.0,
82          p_init_msg_list       => FND_API.G_FALSE,
83          p_commit              => FND_API.G_FALSE,
84          p_validation_level    => FND_API.G_VALID_LEVEL_FULL,
85          x_return_status       => x_return_status,
86          x_msg_count           => x_msg_count,
87          x_msg_data            => x_msg_data,
88          p_scoreresult_rec     => l_pvt_scoreresult_rec,
89          x_score_result_id     => x_score_result_id
90       );
91       -- Check return status from the above procedure call
92       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
93           RAISE FND_API.G_EXC_ERROR;
94       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
95           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
96       END IF;
97       --
98       -- End of API body.
99       --
100 
101       -- Standard check for p_commit
102       IF FND_API.to_Boolean( p_commit ) THEN
103          COMMIT WORK;
104       END IF;
105 
106 
107       -- Debug Message
108       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
109 
110       -- Standard call to get message count and if count is 1, get message info.
111       FND_MSG_PUB.Count_And_Get
112         (p_count          =>   x_msg_count,
113          p_data           =>   x_msg_data
114       );
115 EXCEPTION
116 
117    WHEN AMS_Utility_PVT.resource_locked THEN
118       x_return_status := FND_API.g_ret_sts_error;
119       AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
120 
121    WHEN FND_API.G_EXC_ERROR THEN
122      ROLLBACK TO CREATE_Scoreresult_PUB;
123      x_return_status := FND_API.G_RET_STS_ERROR;
124      -- Standard call to get message count and if count=1, get the message
125      FND_MSG_PUB.Count_And_Get (
126             p_encoded => FND_API.G_FALSE,
127             p_count   => x_msg_count,
128             p_data    => x_msg_data
129      );
130 
131    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
132      ROLLBACK TO CREATE_Scoreresult_PUB;
133      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
134      -- Standard call to get message count and if count=1, get the message
135      FND_MSG_PUB.Count_And_Get (
136             p_encoded => FND_API.G_FALSE,
137             p_count => x_msg_count,
138             p_data  => x_msg_data
139      );
140 
141    WHEN OTHERS THEN
142      ROLLBACK TO CREATE_Scoreresult_PUB;
143      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
144      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
145      THEN
146         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
147      END IF;
148      -- Standard call to get message count and if count=1, get the message
149      FND_MSG_PUB.Count_And_Get (
150             p_encoded => FND_API.G_FALSE,
151             p_count => x_msg_count,
152             p_data  => x_msg_data
153      );
154 End Create_Scoreresult;
155 
156 
157 PROCEDURE Update_Scoreresult(
158     p_api_version             IN   NUMBER,
159     p_init_msg_list           IN   VARCHAR2 := FND_API.G_FALSE,
160     p_commit                  IN   VARCHAR2 := FND_API.G_FALSE,
161 
162     x_return_status           OUT  VARCHAR2,
163     x_msg_count               OUT  NUMBER,
164     x_msg_data                OUT  VARCHAR2,
165 
166     p_scoreresult_rec         IN    scoreresult_rec_type,
167     x_object_version_number   OUT  NUMBER
168 )
169 IS
170    L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Scoreresult';
171    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
172    l_object_version_number  NUMBER;
173    l_pvt_scoreresult_rec  AMS_Scoreresult_PVT.scoreresult_rec_type;
174 BEGIN
175       -- Standard Start of API savepoint
176       SAVEPOINT UPDATE_Scoreresult_PUB;
177 
178       -- Standard call to check for call compatibility.
179       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
180                                            p_api_version,
181                                            l_api_name,
182                                            G_PKG_NAME)
183       THEN
184           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
185       END IF;
186 
187       -- Initialize message list if p_init_msg_list is set to TRUE.
188       IF FND_API.to_Boolean( p_init_msg_list )
189       THEN
190          FND_MSG_PUB.initialize;
191       END IF;
192 
193       -- Debug Message
194       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
195 
196 
197       -- Initialize API return status to SUCCESS
201       -- API body
198       x_return_status := FND_API.G_RET_STS_SUCCESS;
199 
200       --
202       --
203 
204       -- Assign public record values to private record for API
205       l_pvt_scoreresult_rec.score_result_id := p_scoreresult_rec.score_result_id;
206       l_pvt_scoreresult_rec.object_version_number := p_scoreresult_rec.object_version_number;
207       l_pvt_scoreresult_rec.score_id := p_scoreresult_rec.score_id;
208 --      l_pvt_scoreresult_rec.tree_node := p_scoreresult_rec.tree_node;
209       l_pvt_scoreresult_rec.num_records := p_scoreresult_rec.num_records;
210       l_pvt_scoreresult_rec.score := p_scoreresult_rec.response;
211       l_pvt_scoreresult_rec.confidence := p_scoreresult_rec.confidence;
212 
213       AMS_Scoreresult_PVT.Update_Scoreresult(
214          p_api_version        => 1.0,
215          p_init_msg_list      => FND_API.G_FALSE,
216          p_commit             => p_commit,
217          p_validation_level   => FND_API.G_VALID_LEVEL_FULL,
218          x_return_status      => x_return_status,
219          x_msg_count          => x_msg_count,
220          x_msg_data           => x_msg_data,
221          p_scoreresult_rec    => l_pvt_scoreresult_rec,
222          x_object_version_number => l_object_version_number
223       );
224       -- Check return status from the above procedure call
225       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
226           RAISE FND_API.G_EXC_ERROR;
227       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
228           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
229       END IF;
230       --
231       -- End of API body
232       --
233 
234       -- Standard check for p_commit
235       IF FND_API.to_Boolean( p_commit ) THEN
236          COMMIT WORK;
237       END IF;
238 
239 
240       -- Debug Message
241       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
242 
243       -- Standard call to get message count and if count is 1, get message info.
244       FND_MSG_PUB.Count_And_Get
245         (p_count          =>   x_msg_count,
246          p_data           =>   x_msg_data
247       );
248 EXCEPTION
249 
250    WHEN AMS_Utility_PVT.resource_locked THEN
251       x_return_status := FND_API.g_ret_sts_error;
252       AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
253 
254    WHEN FND_API.G_EXC_ERROR THEN
255      ROLLBACK TO UPDATE_Scoreresult_PUB;
256      x_return_status := FND_API.G_RET_STS_ERROR;
257      -- Standard call to get message count and if count=1, get the message
258      FND_MSG_PUB.Count_And_Get (
259             p_encoded => FND_API.G_FALSE,
260             p_count   => x_msg_count,
261             p_data    => x_msg_data
262      );
263 
264    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
265      ROLLBACK TO UPDATE_Scoreresult_PUB;
266      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267      -- Standard call to get message count and if count=1, get the message
268      FND_MSG_PUB.Count_And_Get (
269             p_encoded => FND_API.G_FALSE,
270             p_count => x_msg_count,
271             p_data  => x_msg_data
272      );
273 
274    WHEN OTHERS THEN
275      ROLLBACK TO UPDATE_Scoreresult_PUB;
276      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
277      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
278      THEN
279         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
280      END IF;
281      -- Standard call to get message count and if count=1, get the message
282      FND_MSG_PUB.Count_And_Get (
283             p_encoded => FND_API.G_FALSE,
284             p_count => x_msg_count,
285             p_data  => x_msg_data
286      );
287 End Update_Scoreresult;
288 
289 
290 PROCEDURE Delete_Scoreresult(
291     p_api_version             IN   NUMBER,
292     p_init_msg_list           IN   VARCHAR2 := FND_API.G_FALSE,
293     p_commit                  IN   VARCHAR2 := FND_API.G_FALSE,
294     x_return_status           OUT  VARCHAR2,
295     x_msg_count               OUT  NUMBER,
296     x_msg_data                OUT  VARCHAR2,
297     p_score_result_id         IN  NUMBER,
298     p_object_version_number   IN   NUMBER
299 )
300 IS
301    L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Scoreresult';
302    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
303 BEGIN
304       -- Standard Start of API savepoint
305       SAVEPOINT DELETE_Scoreresult_PUB;
306 
307       -- Standard call to check for call compatibility.
308       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
309                                            p_api_version,
310                                            l_api_name,
311                                            G_PKG_NAME)
312       THEN
313           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
317       IF FND_API.to_Boolean( p_init_msg_list )
314       END IF;
315 
316       -- Initialize message list if p_init_msg_list is set to TRUE.
318       THEN
319          FND_MSG_PUB.initialize;
320       END IF;
321 
322       -- Debug Message
323       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
324 
325 
326       -- Initialize API return status to SUCCESS
327       x_return_status := FND_API.G_RET_STS_SUCCESS;
328 
329       --
330       -- API body
331       --
332       AMS_Scoreresult_PVT.Delete_Scoreresult(
333          p_api_version       => 1.0,
334          p_init_msg_list     => FND_API.G_FALSE,
335          p_commit            => p_commit,
336          p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
337          x_return_status     => x_return_status,
338          x_msg_count         => x_msg_count,
339          x_msg_data          => x_msg_data,
340          p_score_result_id   => p_score_result_id,
341          p_object_version_number   => p_object_version_number
342       );
343       -- Check return status from the above procedure call
344       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
345           RAISE FND_API.G_EXC_ERROR;
346       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
347           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348       END IF;
349       --
350       -- End of API body
351       --
352 
353       -- Standard check for p_commit
354       IF FND_API.to_Boolean( p_commit ) THEN
355          COMMIT WORK;
356       END IF;
357 
358 
359       -- Debug Message
360       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
361 
362       -- Standard call to get message count and if count is 1, get message info.
363       FND_MSG_PUB.Count_And_Get
364         (p_count          =>   x_msg_count,
365          p_data           =>   x_msg_data
366       );
367 EXCEPTION
368 
369    WHEN AMS_Utility_PVT.resource_locked THEN
370       x_return_status := FND_API.g_ret_sts_error;
371       AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
372 
373    WHEN FND_API.G_EXC_ERROR THEN
374      ROLLBACK TO DELETE_Scoreresult_PUB;
375      x_return_status := FND_API.G_RET_STS_ERROR;
376      -- Standard call to get message count and if count=1, get the message
377      FND_MSG_PUB.Count_And_Get (
378             p_encoded => FND_API.G_FALSE,
379             p_count   => x_msg_count,
380             p_data    => x_msg_data
381      );
382 
383    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384      ROLLBACK TO DELETE_Scoreresult_PUB;
385      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
386      -- Standard call to get message count and if count=1, get the message
387      FND_MSG_PUB.Count_And_Get (
388             p_encoded => FND_API.G_FALSE,
389             p_count => x_msg_count,
390             p_data  => x_msg_data
391      );
392 
393    WHEN OTHERS THEN
394      ROLLBACK TO DELETE_Scoreresult_PUB;
395      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
396      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
397      THEN
398         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
399      END IF;
400      -- Standard call to get message count and if count=1, get the message
401      FND_MSG_PUB.Count_And_Get (
402             p_encoded => FND_API.G_FALSE,
403             p_count => x_msg_count,
404             p_data  => x_msg_data
405      );
406 End Delete_Scoreresult;
407 
408 
409 PROCEDURE Lock_Scoreresult(
410     p_api_version       IN   NUMBER,
411     p_init_msg_list     IN   VARCHAR2     := FND_API.G_FALSE,
412     x_return_status     OUT  VARCHAR2,
413     x_msg_count         OUT  NUMBER,
414     x_msg_data          OUT  VARCHAR2,
415 
416     p_score_result_id   IN  NUMBER,
417     p_object_version    IN  NUMBER
418 )
419 IS
420    L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Scoreresult';
421    L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
422 BEGIN
423 
424       -- Standard call to check for call compatibility.
425       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
429       THEN
426                                            p_api_version,
427                                            l_api_name,
428                                            G_PKG_NAME)
430           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
431       END IF;
432 
433       -- Initialize message list if p_init_msg_list is set to TRUE.
434       IF FND_API.to_Boolean( p_init_msg_list )
435       THEN
436          FND_MSG_PUB.initialize;
437       END IF;
438 
439       -- Debug Message
440       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
441 
442 
443       -- Initialize API return status to SUCCESS
444       x_return_status := FND_API.G_RET_STS_SUCCESS;
445 
446       --
447       -- API body
448       --
449     -- Calling Private package: Create_Scoreresult
450     -- Hint: Primary key needs to be returned
451       AMS_Scoreresult_PVT.Lock_Scoreresult(
452          p_api_version        => 1.0,
453          p_init_msg_list      => FND_API.G_FALSE,
454          x_return_status      => x_return_status,
455          x_msg_count          => x_msg_count,
456          x_msg_data           => x_msg_data,
457          p_score_result_id    => p_score_result_id,
458          p_object_version     => p_object_version
459       );
460       -- Check return status from the above procedure call
461       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
462           RAISE FND_API.G_EXC_ERROR;
463       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
464           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
465       END IF;
466       --
467       -- End of API body.
468       --
469 
470       -- Debug Message
471       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
472 
473 EXCEPTION
474 
475    WHEN AMS_Utility_PVT.resource_locked THEN
476       x_return_status := FND_API.g_ret_sts_error;
477       AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
478 
479    WHEN FND_API.G_EXC_ERROR THEN
480      ROLLBACK TO LOCK_Scoreresult_PUB;
481      x_return_status := FND_API.G_RET_STS_ERROR;
482      -- Standard call to get message count and if count=1, get the message
483      FND_MSG_PUB.Count_And_Get (
484             p_encoded => FND_API.G_FALSE,
485             p_count   => x_msg_count,
486             p_data    => x_msg_data
487      );
488 
489    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
490      ROLLBACK TO LOCK_Scoreresult_PUB;
491      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
492      -- Standard call to get message count and if count=1, get the message
493      FND_MSG_PUB.Count_And_Get (
494             p_encoded => FND_API.G_FALSE,
495             p_count => x_msg_count,
496             p_data  => x_msg_data
497      );
498 
499    WHEN OTHERS THEN
500      ROLLBACK TO LOCK_Scoreresult_PUB;
501      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
502      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
503      THEN
504         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
505      END IF;
506      -- Standard call to get message count and if count=1, get the message
507      FND_MSG_PUB.Count_And_Get (
508             p_encoded => FND_API.G_FALSE,
509             p_count => x_msg_count,
510             p_data  => x_msg_data
511      );
512 End Lock_Scoreresult;
513 
514 
515 PROCEDURE Create_ScoreResult (
516    p_score_id           IN NUMBER,
517    p_tree_node          IN NUMBER,
518    p_num_records        IN NUMBER,
519    p_score              IN VARCHAR2,
520    p_confidence         IN NUMBER,
521    p_positive_score_prob   IN NUMBER,
522    x_score_result_id    OUT NUMBER,
523    x_return_status      OUT VARCHAR2
524 )
525 IS
526    L_API_NAME              CONSTANT VARCHAR2(30) := 'Create_ScoreResult';
527 
528    l_scoreresult_rec       AMS_ScoreResult_PVT.scoreresult_rec_type;
529    l_score_result_id       NUMBER;
530    l_object_version_number NUMBER;
531 
532    l_msg_count    NUMBER;
533    l_msg_data     VARCHAR2(4000);
534 
535    l_dummy        NUMBER;
536 
537    CURSOR c_result_id IS
538       SELECT ams_dm_score_results_s.NEXTVAL
539       FROM   dual;
540 
541    CURSOR c_id_exists (p_result_id IN NUMBER) IS
542       SELECT 1
543       FROM   dual
544       WHERE  EXISTS (SELECT 1
545                      FROM   ams_dm_score_results
546                      WHERE  score_result_id = p_result_id)
547       ;
548 BEGIN
549    -- Standard Start of API savepoint
550    SAVEPOINT CREATE_Scoreresult_PUB;
551 
552    -- Initialize API return status to SUCCESS
553    x_return_status := FND_API.G_RET_STS_SUCCESS;
554 
555    -- Construct record for private API
556    l_scoreresult_rec.score_id := p_score_id;
557 --   l_scoreresult_rec.tree_node := p_tree_node;
558    l_scoreresult_rec.num_records := p_num_records;
559    l_scoreresult_rec.score := p_score;
560    l_scoreresult_rec.confidence := p_confidence;
561 
562    -- validate the values
563    AMS_ScoreResult_PVT.validate_scoreresult (
564       p_api_version        => 1.0,
565       p_init_msg_list      => FND_API.G_TRUE,
566       p_validation_level   => FND_API.G_VALID_LEVEL_FULL,
567       p_validation_mode    => JTF_PLSQL_API.G_CREATE,
568       p_scoreresult_rec    => l_scoreresult_rec,
569       x_return_status      => x_return_status,
570       x_msg_count          => l_msg_count,
571       x_msg_data           => l_msg_data
572    );
573    -- Check return status from the above procedure call
574    IF x_return_status = FND_API.G_RET_STS_ERROR THEN
578    END IF;
575        RAISE FND_API.G_EXC_ERROR;
576    ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
577        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
579 
580    -- get a unique id
581    LOOP
582       l_dummy := NULL;
583 
584       OPEN c_result_id;
585       FETCH c_result_id INTO l_score_result_id;
586       CLOSE c_result_id;
587 
588       OPEN c_id_exists (l_score_result_id);
589       FETCH c_id_exists INTO l_dummy;
590       CLOSE c_id_exists;
591 
592       EXIT WHEN l_dummy IS NULL;
593    END LOOP;
594 
595    -- call the table handler
596    ams_dm_score_results_pkg.insert_row (
597       PX_SCORE_RESULT_ID         => l_score_result_id,
598       P_LAST_UPDATE_DATE         => SYSDATE,
599       P_LAST_UPDATED_BY          => FND_GLOBAL.user_id,
600       P_CREATION_DATE            => SYSDATE,
601       P_CREATED_BY               => FND_GLOBAL.user_id,
602       P_LAST_UPDATE_LOGIN        => FND_GLOBAL.conc_login_id,
603       PX_OBJECT_VERSION_NUMBER   => l_object_version_number,
604       P_SCORE_ID                 => p_score_id,
605       P_DECILE                   => NULL, -- need to add when needed
606       P_NUM_RECORDS              => p_num_records,
607       P_SCORE                    => p_score,
608       P_CONFIDENCE               => p_confidence
609    );
610 
611    x_score_result_id := l_score_result_id;
612 EXCEPTION
613    WHEN FND_API.G_EXC_ERROR THEN
614      ROLLBACK TO CREATE_Scoreresult_PUB;
615      x_return_status := FND_API.G_RET_STS_ERROR;
616    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
617      ROLLBACK TO CREATE_Scoreresult_PUB;
618      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
619    WHEN OTHERS THEN
620      ROLLBACK TO CREATE_Scoreresult_PUB;
621      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
622      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
623         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
624      END IF;
625 END Create_ScoreResult;
626 
627 
628 END AMS_Scoreresult_PUB;