DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSD_REPAIRS_PUB

Source


4     * This is the public interface for the Depot Repair API.  It allows
1 PACKAGE BODY CSD_REPAIRS_PUB as
2     /* $Header: csdpdrab.pls 120.15 2011/12/02 06:46:56 vicli ship $ */
3     /*#
5     * execution of various Depot Repair APIs.
6     * @rep:scope public
7     * @rep:product CSD
8     * @rep:displayname Depot Repair APIs
9     * @rep:lifecycle active
10     * @rep:category BUSINESS_ENTITY CSD_REPAIR_ORDER
11     */
12     --
13     -- Package name     : CSD_REPAIRS_PUB
14     -- Purpose          : This package contains the public APIs for creating
15     --                    and updating repair orders.
16     -- History          :
17     -- Version       Date       Name        Description
18     -- 115.0         11/17/99   pkdas       Created.
19     -- 115.1         12/18/99   pkdas
20     -- 115.2         01/04/00   pkdas
21     -- 115.3         02/09/00   pkdas       Added p_REPAIR_LINE_ID as IN parameter in the
22     --                                      Create_Repairs procedure.
23     --                                      Added p_REPAIR_NUMBER as OUT parameter in the
27     --                                      Update_Repairs -> Update_Repair_Order
24     --                                      Create_Repairs procedure.
25     -- 115.4         02/29/00   pkdas       Changed the procedure name
26     --                                      Create_Repairs -> Create_Repair_Order
28     --                                      Added p_validation_level to Create_Repair_Order and
29     --                                      Update_Repair_Order
30     --
31     -- NOTE             :
32     --
33     G_PKG_NAME  CONSTANT VARCHAR2(30) := 'CSD_REPAIRS_PUB';
34     G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdpdrab.pls';
35     g_debug NUMBER := csd_gen_utility_pvt.g_debug_level;
36     --
37     /*#
38     * Create Repair Order
39     * @param P_Api_Version_Number api version number
40     * @param P_Init_Msg_List initial the message stack, default to false
41     * @param P_Commit to decide whether to commit the transaction or not, default to false
42     * @param p_validation_level validation level, default to full level
43     * @param p_repair_line_id repair line id is unique id
44     * @param P_REPLN_Rec repiar line record
45     * @param p_create_default_logistics flag to create logistics lines, default to N
46     * @param X_REPAIR_LINE_ID repair line id of the created repair order
47     * @param X_REPAIR_NUMBER repair number of the created repair order which display on Depot UI
48     * @param X_Return_Status return status
49     * @param X_Msg_Count return message count
50     * @param X_Msg_Data return message data
51     * @rep:scope public
52     * @rep:lifecycle active
53     * @rep:displayname Create Repair Order
54     */
55     PROCEDURE Create_Repair_Order(P_Api_Version_Number IN NUMBER,
56                                   P_Init_Msg_List      IN VARCHAR2 := FND_API.G_FALSE,
57                                   P_Commit             IN VARCHAR2 := FND_API.G_FALSE,
58                                   p_validation_level   IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
59                                   P_REPAIR_LINE_ID     IN NUMBER := FND_API.G_MISS_NUM,
60                                   P_REPLN_Rec          IN CSD_REPAIRS_PUB.REPLN_Rec_Type,
61                                   p_create_default_logistics   IN VARCHAR2 := 'N',
62                                   X_REPAIR_LINE_ID     OUT NOCOPY NUMBER,
63                                   X_REPAIR_NUMBER      OUT NOCOPY VARCHAR2,
64                                   X_Return_Status      OUT NOCOPY VARCHAR2,
65                                   X_Msg_Count          OUT NOCOPY NUMBER,
66                                   X_Msg_Data           OUT NOCOPY VARCHAR2) IS
67         --
68         l_api_name           CONSTANT VARCHAR2(30) := 'Create_Repair_Order';
69         l_api_version_number CONSTANT NUMBER := 1.0;
70         --
71 
72         -- swai: 12.1.1 bug 7176940 service bulletin check
73         l_ro_sc_ids_tbl CSD_RO_BULLETINS_PVT.CSD_RO_SC_IDS_TBL_TYPE;
74         l_return_status                 VARCHAR2 (1) ;
75         l_msg_count                     NUMBER;
76         l_msg_data                      VARCHAR2 (2000);
77     BEGIN
78         --
79         -- Standard Start of API savepoint
80         SAVEPOINT CREATE_REPAIR_ORDER_PUB;
81         -- Standard call to check for call compatibility.
82         IF NOT FND_API.Compatible_API_Call(l_api_version_number,
83                                            p_api_version_number,
84                                            l_api_name,
85                                            G_PKG_NAME)
86         THEN
87             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88         END IF;
89         -- Initialize message list if p_init_msg_list is set to TRUE.
90         IF FND_API.to_Boolean(p_init_msg_list)
91         THEN
92             FND_MSG_PUB.initialize;
93         END IF;
94         -- Initialize API return status to success
95         x_return_status := FND_API.G_RET_STS_SUCCESS;
96         --
97         -- API body
98         --
99         CSD_REPAIRS_PVT.Create_Repair_Order(P_Api_Version_Number => 1.0,
100                                             P_Init_Msg_List      => p_init_msg_list,
101                                             P_Commit             => p_commit,
102                                             P_Validation_Level   => p_validation_level,
103                                             P_REPAIR_LINE_ID     => p_REPAIR_LINE_ID,
104                                             P_REPLN_Rec          => p_REPLN_Rec,
105                                             X_REPAIR_LINE_ID     => x_REPAIR_LINE_ID,
106                                             X_REPAIR_NUMBER      => x_REPAIR_NUMBER,
107                                             X_Return_Status      => x_return_status,
108                                             X_Msg_Count          => x_msg_count,
109                                             X_Msg_Data           => x_msg_data);
110         --
111         -- Check return status from the above procedure call
112         IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
113         then
114             ROLLBACK TO CREATE_REPAIR_ORDER_PUB;
115             return;
116         END IF;
117 
118         IF (P_CREATE_DEFAULT_LOGISTICS = 'Y') THEN
119 
120            CSD_LOGISTICS_PVT.Create_Default_Logistics
121            (     p_api_version        =>    P_Api_Version_Number,
122                  p_commit             =>    P_Commit,
123                  p_init_msg_list      =>    P_Init_Msg_List,
124                  p_validation_level   =>    p_validation_level,
125                  p_repair_line_id     =>    X_REPAIR_LINE_ID, -- swai: bug 7654143
126                  x_return_status      =>    X_Return_Status,
127                  x_msg_count          =>    X_Msg_Count,
131            IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
128                  x_msg_data           =>    X_Msg_Data
129            );
130 
132               RAISE FND_API.G_EXC_ERROR;
133            END IF;
134 
135         END IF;
136 
137         -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
138         IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
139             CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
140                p_api_version_number         => 1.0,
141                p_init_msg_list              => Fnd_Api.G_FALSE,
142                p_commit                     => Fnd_Api.G_FALSE,
143                p_validation_level           => Fnd_Api.G_VALID_LEVEL_FULL,
144                p_repair_line_id             => x_repair_line_id,
145                px_ro_sc_ids_tbl             => l_ro_sc_ids_tbl,
146                x_return_status              => l_return_status,
147                x_msg_count                  => l_msg_count,
148                x_msg_data                   => l_msg_data
149             );
150             -- ignore return status for now.
151         END IF;
152 
153         --
154         -- End of API body.
155         --
156         -- Standard check for p_commit
157         IF FND_API.to_Boolean(p_commit)
158         THEN
159             COMMIT WORK;
160         END IF;
161         -- Standard call to get message count and if count is 1, get message info.
162         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
163                                   p_data  => x_msg_data);
164         --
165     EXCEPTION
166         WHEN FND_API.G_EXC_ERROR THEN
167             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
168                                             P_PKG_NAME        => G_PKG_NAME,
169                                             P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
170                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
171                                             X_MSG_COUNT       => X_MSG_COUNT,
172                                             X_MSG_DATA        => X_MSG_DATA,
173                                             X_RETURN_STATUS   => X_RETURN_STATUS);
174             --   RAISE;
175         --
176         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
177             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
178                                             P_PKG_NAME        => G_PKG_NAME,
179                                             P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
180                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
181                                             X_MSG_COUNT       => X_MSG_COUNT,
182                                             X_MSG_DATA        => X_MSG_DATA,
183                                             X_RETURN_STATUS   => X_RETURN_STATUS);
184             --   RAISE;
185         --
186         WHEN OTHERS THEN
187             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
188                                             P_PKG_NAME        => G_PKG_NAME,
189                                             P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS,
190                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
191                                             X_MSG_COUNT       => X_MSG_COUNT,
192                                             X_MSG_DATA        => X_MSG_DATA,
193                                             X_RETURN_STATUS   => X_RETURN_STATUS);
194             --   RAISE;
195         --
196     End Create_Repair_Order;
197 
198     PROCEDURE Update_Repair_Order(P_Api_Version_Number IN NUMBER,
199                                   P_Init_Msg_List      IN VARCHAR2 := FND_API.G_FALSE,
200                                   P_Commit             IN VARCHAR2 := FND_API.G_FALSE,
201                                   p_validation_level   IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
202                                   p_REPAIR_LINE_ID     IN NUMBER,
203                                   P_REPLN_Rec          IN OUT NOCOPY CSD_REPAIRS_PUB.REPLN_Rec_Type,
204                                   X_Return_Status      OUT NOCOPY VARCHAR2,
205                                   X_Msg_Count          OUT NOCOPY NUMBER,
206                                   X_Msg_Data           OUT NOCOPY VARCHAR2) IS
207         --
208         l_api_name           CONSTANT VARCHAR2(30) := 'Update_Repair_Order';
209         l_api_version_number CONSTANT NUMBER := 1.0;
210         --
211     BEGIN
212         --
213         -- Standard Start of API savepoint
214         SAVEPOINT UPDATE_REPAIR_ORDER_PUB;
215         -- Standard call to check for call compatibility.
216         IF NOT FND_API.Compatible_API_Call(l_api_version_number,
217                                            p_api_version_number,
218                                            l_api_name,
219                                            G_PKG_NAME)
220         THEN
221             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
222         END IF;
223         -- Initialize message list if p_init_msg_list is set to TRUE.
224         IF FND_API.to_Boolean(p_init_msg_list)
225         THEN
226             FND_MSG_PUB.initialize;
227         END IF;
228         -- Initialize API return status to SUCCESS
229         x_return_status := FND_API.G_RET_STS_SUCCESS;
230         --
231         -- API body
232         --
233         CSD_repairs_PVT.Update_Repair_Order(P_Api_Version_Number => 1.0,
234                                             P_Init_Msg_List      => p_init_msg_list,
235                                             P_Commit             => p_commit,
239                                             X_Return_Status      => x_return_status,
236                                             P_Validation_Level   => p_validation_level,
237                                             p_REPAIR_LINE_ID     => p_repair_line_id,
238                                             P_REPLN_Rec          => p_REPLN_Rec,
240                                             X_Msg_Count          => x_msg_count,
241                                             X_Msg_Data           => x_msg_data);
242         --
243         -- Check return status from the above procedure call
244         IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
245         then
246             ROLLBACK TO UPDATE_REPAIR_ORDER_PUB;
247             return;
248         END IF;
249         --
250         -- End of API body.
251         --
252         -- Standard check for p_commit
253         IF FND_API.to_Boolean(p_commit)
254         THEN
255             COMMIT WORK;
256         END IF;
257         -- Standard call to get message count and if count is 1, get message info.
258         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
259                                   p_data  => x_msg_data);
260         --
261     EXCEPTION
262         WHEN FND_API.G_EXC_ERROR THEN
263             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
264                                             P_PKG_NAME        => G_PKG_NAME,
265                                             P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
266                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
267                                             X_MSG_COUNT       => X_MSG_COUNT,
268                                             X_MSG_DATA        => X_MSG_DATA,
269                                             X_RETURN_STATUS   => X_RETURN_STATUS);
270             --   RAISE;
271         --
272         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
273             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
274                                             P_PKG_NAME        => G_PKG_NAME,
275                                             P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
276                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
277                                             X_MSG_COUNT       => X_MSG_COUNT,
278                                             X_MSG_DATA        => X_MSG_DATA,
279                                             X_RETURN_STATUS   => X_RETURN_STATUS);
280             --   RAISE;
281         --
282         WHEN OTHERS THEN
283             JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME        => L_API_NAME,
284                                             P_PKG_NAME        => G_PKG_NAME,
285                                             P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS,
286                                             P_PACKAGE_TYPE    => JTF_PLSQL_API.G_PUB,
287                                             X_MSG_COUNT       => X_MSG_COUNT,
288                                             X_MSG_DATA        => X_MSG_DATA,
289                                             X_RETURN_STATUS   => X_RETURN_STATUS);
290             --   RAISE;
291     End Update_Repair_Order;
292 
293    -- bug#12884352
294    PROCEDURE Update_Repair_Type (
295       p_api_version           IN    NUMBER,
296       p_commit                IN    VARCHAR2 := fnd_api.g_false,
297       p_init_msg_list         IN    VARCHAR2 := fnd_api.g_false,
298       p_validation_level      IN    NUMBER   := FND_API.G_VALID_LEVEL_FULL,
299       x_return_status         OUT   NOCOPY    VARCHAR2,
300       x_msg_count             OUT   NOCOPY    NUMBER,
301       x_msg_data              OUT   NOCOPY    VARCHAR2,
302       p_repair_type_rec       IN    CSD_REPAIRS_PUB.Repair_Type_Rec_Type,
303       x_object_version_number OUT   NOCOPY NUMBER
304       ) IS
305 
306         --
307         l_api_name           CONSTANT VARCHAR2(30) := 'Update_Repair_Type';
308         l_api_version_number CONSTANT NUMBER := 1.0;
309         --
310     BEGIN
311         --
312         -- Standard Start of API savepoint
313         SAVEPOINT UPDATE_REPAIR_TYPE_PUB;
314         -- Standard call to check for call compatibility.
315         IF NOT FND_API.Compatible_API_Call(l_api_version_number,
316                                            p_api_version,
317                                            l_api_name,
318                                            G_PKG_NAME)
319         THEN
320             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
321         END IF;
322         -- Initialize message list if p_init_msg_list is set to TRUE.
323         IF FND_API.to_Boolean(p_init_msg_list)
324         THEN
325             FND_MSG_PUB.initialize;
326         END IF;
327         -- Initialize API return status to success
328         x_return_status := FND_API.G_RET_STS_SUCCESS;
329         --
330         -- API body
331         --
332         CSD_REPAIRS_PVT.UPDATE_REPAIR_TYPE(P_Api_Version           => p_api_version,
333                                            p_commit     => CSD_PROCESS_UTIL.g_false,
334                                            p_init_msg_list  => CSD_PROCESS_UTIL.g_false,
335                                            p_validation_level => p_validation_level,
336                                            x_return_status => x_return_status,
337                                            x_msg_count  => x_msg_count,
338                                            x_msg_data  => x_msg_data,
339                                            p_repair_line_id  => p_repair_type_rec.repair_line_id,
340                                            p_from_repair_type_id => p_repair_type_rec.from_repair_type_id,
341                                            p_to_repair_type_id => p_repair_type_rec.to_repair_type_id,
345                                            x_object_version_number => x_object_version_number
342                                            p_common_flow_status_id => p_repair_type_rec.common_flow_status_id,
343                                            p_reason_code => p_repair_type_rec.reason_code,
344                                            p_object_version_number => p_repair_type_rec.object_version_number,
346                                           );
347 
348         --
349         -- Check return status from the above procedure call
350         IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
351         then
352             ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
353             return;
354         END IF;
355         --
356         -- End of API body.
357         --
358         -- Standard check for p_commit
359         IF FND_API.to_Boolean(p_commit)
360         THEN
361             COMMIT WORK;
362         END IF;
363         -- Standard call to get message count and if count is 1, get message info.
364         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
365                                   p_data  => x_msg_data);
366         --
367     EXCEPTION
368         WHEN Fnd_Api.G_EXC_ERROR THEN
369             x_return_status := Fnd_Api.G_RET_STS_ERROR;
370             ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
371             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
372                                       p_data  => x_msg_data);
373             IF (Fnd_Log.level_error >= Fnd_Log.g_current_runtime_level)
374             THEN
375                 Fnd_Log.STRING(Fnd_Log.level_error,
376                                'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
377                                'EXC_ERROR[' || x_msg_data || ']');
378             END IF;
379 
380         WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
381             x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
382             ROLLBACK TO UPDATE_REPAIR_TYPE_PUB;
383             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
384                                       p_data  => x_msg_data);
385             IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
386             THEN
387                 Fnd_Log.STRING(Fnd_Log.level_exception,
388                                'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
389                                'EXC_UNEXP_ERROR[' || x_msg_data || ']');
390             END IF;
391         WHEN OTHERS THEN
392             x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
393             Rollback TO UPDATE_REPAIR_TYPE_PUB;
394             IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
395             THEN
396                 Fnd_Msg_Pub.Add_Exc_Msg(G_PKG_NAME, l_api_name);
397             END IF;
398             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
399                                       p_data  => x_msg_data);
400             IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
401             THEN
402                 Fnd_Log.STRING(Fnd_Log.level_exception,
403                                'csd.plsql.CSD_REPAIRS_PUB.Update_Repair_Type',
404                                'SQL MEssage[' || SQLERRM || ']');
405             END IF;
406 
407     End Update_Repair_Type;
408 
409     --
410     -- R12 Development Begin
411     /*#
412     * Update Repair Order Status
413     * @param P_Api_Version api version number
414     * @param P_Commit to decide whether to commit the transaction or not, default to false
415     * @param P_Init_Msg_List initial the message stack, default to false
416     * @param X_Return_Status return status
417     * @param X_Msg_Count return message count
418     * @param X_Msg_Data return message data
419     * @param P_Repair_status_rec repair status attributes record.
420     * @param P_status_upd_control_rec repair status record control flags.
421     * @param X_OBJECT_VERSION_NUMBER
422     * @rep:scope public
423     * @rep:lifecycle active
424     * @rep:displayname Update Repair Order Status
425     */
426     PROCEDURE Update_Ro_Status(P_Api_Version            IN NUMBER,
427                                P_Commit                 IN VARCHAR2,
428                                P_Init_Msg_List          IN VARCHAR2,
429                                X_Return_Status          OUT NOCOPY VARCHAR2,
430                                X_Msg_Count              OUT NOCOPY NUMBER,
431                                X_Msg_Data               OUT NOCOPY VARCHAR2,
432                                P_REPAIR_STATUS_Rec      IN REPAIR_STATUS_REC_TYPE,
433                                P_STATUS_UPD_CONTROL_REC IN STATUS_UPD_CONTROL_REC_TYPE,
434                                X_OBJECT_VERSION_NUMBER  OUT NOCOPY NUMBER) IS
435         --
436         l_api_name           CONSTANT VARCHAR2(30) := 'Update_Ro_Status';
437         l_api_version_number CONSTANT NUMBER := 1.0;
438         --
439     BEGIN
440         --
441         -- Standard Start of API savepoint
442         SAVEPOINT UPDATE_RO_STATUS_PUB;
443         -- Standard call to check for call compatibility.
444         IF NOT FND_API.Compatible_API_Call(l_api_version_number,
445                                            p_api_version,
446                                            l_api_name,
447                                            G_PKG_NAME)
448         THEN
449             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
450         END IF;
451         -- Initialize message list if p_init_msg_list is set to TRUE.
452         IF FND_API.to_Boolean(p_init_msg_list)
453         THEN
454             FND_MSG_PUB.initialize;
455         END IF;
456         -- Initialize API return status to success
457         x_return_status := FND_API.G_RET_STS_SUCCESS;
458         --
459         -- API body
460         --
464                                          P_Validation_Level      => FND_API.G_VALID_LEVEL_FULL,
461         CSD_REPAIRS_PVT.UPDATE_RO_STATUS(P_Api_Version           => p_api_version,
462                                          P_Commit                => p_commit,
463                                          P_Init_Msg_List         => p_init_msg_list,
465                                          X_Return_Status         => x_return_status,
466                                          X_Msg_Count             => x_msg_count,
467                                          X_Msg_Data              => x_msg_data,
468                                          P_REPAIR_STATUS_REC     => p_repair_status_rec,
469                                          P_STATUS_CONTROL_REC    => p_status_upd_control_rec,
470                                          X_OBJECT_VERSION_NUMBER => x_object_Version_number);
471         --
472         -- Check return status from the above procedure call
473         IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
474         then
475             ROLLBACK TO UPDATE_RO_STATUS_PUB;
476             return;
477         END IF;
478         --
479         -- End of API body.
480         --
481         -- Standard check for p_commit
482         IF FND_API.to_Boolean(p_commit)
483         THEN
484             COMMIT WORK;
485         END IF;
486         -- Standard call to get message count and if count is 1, get message info.
487         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
488                                   p_data  => x_msg_data);
489         --
490     EXCEPTION
491         WHEN Fnd_Api.G_EXC_ERROR THEN
492             x_return_status := Fnd_Api.G_RET_STS_ERROR;
493             ROLLBACK TO UPDATE_RO_STATUS_PUB;
494             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
495                                       p_data  => x_msg_data);
496             IF (Fnd_Log.level_error >= Fnd_Log.g_current_runtime_level)
497             THEN
498                 Fnd_Log.STRING(Fnd_Log.level_error,
499                                'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
500                                'EXC_ERROR[' || x_msg_data || ']');
501             END IF;
502 
503         WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
504             x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
505             ROLLBACK TO UPDATE_RO_STATUS_PUB;
506             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
507                                       p_data  => x_msg_data);
508             IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
509             THEN
510                 Fnd_Log.STRING(Fnd_Log.level_exception,
511                                'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
512                                'EXC_UNEXP_ERROR[' || x_msg_data || ']');
513             END IF;
514         WHEN OTHERS THEN
515             x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
516             Rollback TO UPDATE_RO_STATUS_PUB;
517             IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
518             THEN
519                 Fnd_Msg_Pub.Add_Exc_Msg(G_PKG_NAME, l_api_name);
520             END IF;
521             Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
522                                       p_data  => x_msg_data);
523             IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
524             THEN
525                 Fnd_Log.STRING(Fnd_Log.level_exception,
526                                'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
527                                'SQL MEssage[' || SQLERRM || ']');
528             END IF;
529 
530     End Update_ro_status;
531     -- R12 Development End
532 End CSD_REPAIRS_PUB;