DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_WRITEOFF_OBJECTS_PVT

Source


1 PACKAGE BODY IEX_WRITEOFF_OBJECTS_PVT as
2 /* $Header: iexvwobb.pls 120.1 2007/10/31 12:30:14 ehuh ship $ */
3 
4 PG_DEBUG NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5 -- Start of Comments
6 -- Package name     : IEX_writeoff_objects_PVT
7 -- Purpose          :
8 -- History          :
9 -- NOTE             :
10 -- End of Comments
11 
12 
13 
14 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iexvwobb.pls';
15 
16 --private procedure
17 /**Name   AddMissingArgMsg
18   **Appends to a message  the api name, parameter name and parameter Value
19  */
20 
21 PROCEDURE AddMissingArgMsg
22   ( p_api_name	    IN	VARCHAR2,
23     p_param_name	IN	VARCHAR2 )IS
24 BEGIN
25         fnd_message.set_name('IEX', 'IEX_API_ALL_MISSING_PARAM');
26         fnd_message.set_token('API_NAME', p_api_name);
27         fnd_message.set_token('MISSING_PARAM', p_param_name);
28         fnd_msg_pub.add;
29 
30 END AddMissingArgMsg;
31 
32 
33 PROCEDURE create_writeoff_objects(
34     P_Api_Version_Number         IN   NUMBER,
35     P_Init_Msg_List              IN   VARCHAR2,
36     P_Commit                     IN   VARCHAR2,
37     P_writeoff_obj_rec           IN    writeoff_obj_rec_Type
38    ,X_writeoff_object_id         OUT  NOCOPY NUMBER
39    ,x_return_status              OUT  NOCOPY VARCHAR2
40    ,x_msg_count                  OUT  NOCOPY NUMBER
41    ,x_msg_data                   OUT  NOCOPY VARCHAR2) IS
42 
43 l_api_name                CONSTANT VARCHAR2(50) := 'CREATE_WRITEOFF_OBJECTS';
44 l_api_name_full	          CONSTANT VARCHAR2(150) := g_pkg_name || '.' || l_api_name;
45 l_api_version_number      CONSTANT NUMBER   := 2.0;
46 v_writeoff_object_id      IEX_writeoff_objects.writeoff_object_id%TYPE;
47 v_object_version_number   IEX_writeoff_objects.object_version_number%TYPE;
48 v_rowid                    VARCHAR2(24);
49 
50 Cursor c2 is SELECT IEX_writeoff_objects_S.nextval from dual;
51 
52  BEGIN
53       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
54          IEX_DEBUG_PUB.LogMessage ('** Start of Procedure =>'||
55                    'IEX_writeoff_objects_PVT.create_writeoff_objects *** ');
56      END IF;
57       -- Standard Start of API savepoint
58       SAVEPOINT CREATE_WRITEOFF_OBJECTS_PVT;
59 
60       -- Standard call to check for call compatibility.
61       IF NOT FND_API.Compatible_API_Call ( l_api_version_number, p_api_version_number,
62                                            l_api_name, G_PKG_NAME) then
63           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
64       END IF;
65       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
66       IEX_DEBUG_PUB.LogMessage('After Compatibility Check');
67       END IF;
68 
69       IF FND_API.to_Boolean( p_init_msg_list )
70       THEN
71           FND_MSG_PUB.initialize;
72       END IF;
73 
74       x_return_status := FND_API.G_RET_STS_SUCCESS;
75       -- ******************************************************************
76       -- Validate Environment
77       -- ******************************************************************
78       IF FND_GLOBAL.User_Id IS NULL
79       THEN
80           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
81           THEN
82               FND_MESSAGE.Set_Name('IEX', 'IEX_CANNOT_GET_PROFILE_VALUE');
83               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
84               FND_MSG_PUB.ADD;
85           END IF;
86           RAISE FND_API.G_EXC_ERROR;
87       END IF;
88       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
89       IEX_DEBUG_PUB.LogMessage('After Global user Check');
90       END IF;
91 
92 
93       v_object_version_number :=1;
94 
95       OPEN C2;
96       FETCH C2 INTO v_writeoff_object_id;
97       CLOSE C2;
98 
99       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
100          IEX_DEBUG_PUB.LogMessage('writeoff_object_id is => '||v_writeoff_object_id);
101       END IF;
102 
103       IF (p_writeoff_obj_rec.writeoff_id IS NULL)  THEN
104               AddMissingArgMsg(p_api_name    =>  l_api_name_full,
105                                p_param_name  =>  'writeoff_id' );
106               RAISE FND_API.G_EXC_ERROR;
107       END IF;
108 
109       IF (p_writeoff_obj_rec.adjustment_amount IS NULL)  THEN
110   	           AddMissingArgMsg(p_api_name    =>  l_api_name_full,
111                                     p_param_name  =>  'adjustment_amount' );
112                RAISE FND_API.G_EXC_ERROR;
113       END IF;
114 
115       IF (p_writeoff_obj_rec.transaction_id IS NULL)  THEN
116   	         AddMissingArgMsg(p_api_name    =>  l_api_name_full,
117                                   p_param_name  =>  'transaction_id' );
118                  RAISE FND_API.G_EXC_ERROR;
119       END IF;
120 
121       IF (p_writeoff_obj_rec.adjustment_reason_code IS NULL)  THEN
122   	         AddMissingArgMsg(p_api_name    =>  l_api_name_full,
123                                   p_param_name  =>  'adjustment_reason_code' );
124              RAISE FND_API.G_EXC_ERROR;
125        END IF;
126 
127 
128        IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
129            IEX_DEBUG_PUB.LogMessage('Before Calling iex_writeoff_objects_pkg.insert_row');
130        END IF;
131 
132       IEX_writeoff_objects_PKG.Insert_Row(
133           x_rowid                     => v_rowid,
134           x_WRITEOFF_OBJECT_ID        => v_writeoff_object_id,
135           x_WRITEOFF_ID               => p_writeoff_obj_rec.WRITEOFF_ID,
136           x_OBJECT_VERSION_NUMBER     => v_OBJECT_VERSION_NUMBER,
137           x_CONTRACT_ID               => p_writeoff_obj_rec.CONTRACT_ID,
138           x_CONS_INVOICE_ID           => p_writeoff_obj_rec.CONS_INVOICE_ID,
139           x_CONS_INVOICE_LINE_ID      => p_writeoff_obj_rec.CONS_INVOICE_LINE_ID,
140           x_TRANSACTION_ID            => p_writeoff_obj_rec.TRANSACTION_ID,
141           x_ADJUSTMENT_AMOUNT         => p_writeoff_obj_rec.ADJUSTMENT_AMOUNT,
142           x_ADJUSTMENT_REASON_CODE    => p_writeoff_obj_rec.adjustment_reason_code,
143           x_RECEVIABLES_ADJUSTMENT_ID => p_writeoff_obj_rec.RECEVIABLES_ADJUSTMENT_ID,
144           x_REQUEST_ID                => p_writeoff_obj_rec.REQUEST_ID,
145           x_PROGRAM_APPLICATION_ID   => p_writeoff_obj_rec.PROGRAM_APPLICATION_ID,
146           x_PROGRAM_ID               => p_writeoff_obj_rec.PROGRAM_ID,
147           x_PROGRAM_UPDATE_DATE      => p_writeoff_obj_rec.PROGRAM_UPDATE_DATE,
148           x_ATTRIBUTE_CATEGORY       => p_writeoff_obj_rec.ATTRIBUTE_CATEGORY,
149           x_ATTRIBUTE1  => p_writeoff_obj_rec.ATTRIBUTE1,
150           x_ATTRIBUTE2  => p_writeoff_obj_rec.ATTRIBUTE2,
151           x_ATTRIBUTE3  => p_writeoff_obj_rec.ATTRIBUTE3,
152           x_ATTRIBUTE4  => p_writeoff_obj_rec.ATTRIBUTE4,
153           x_ATTRIBUTE5  => p_writeoff_obj_rec.ATTRIBUTE5,
154           x_ATTRIBUTE6  => p_writeoff_obj_rec.ATTRIBUTE6,
155           x_ATTRIBUTE7  => p_writeoff_obj_rec.ATTRIBUTE7,
156           x_ATTRIBUTE8  => p_writeoff_obj_rec.ATTRIBUTE8,
157           x_ATTRIBUTE9  => p_writeoff_obj_rec.ATTRIBUTE9,
158           x_ATTRIBUTE10  => p_writeoff_obj_rec.ATTRIBUTE10,
159           x_ATTRIBUTE11  => p_writeoff_obj_rec.ATTRIBUTE11,
160           x_ATTRIBUTE12  => p_writeoff_obj_rec.ATTRIBUTE12,
161           x_ATTRIBUTE13  => p_writeoff_obj_rec.ATTRIBUTE13,
162           x_ATTRIBUTE14  => p_writeoff_obj_rec.ATTRIBUTE14,
163           x_ATTRIBUTE15  => p_writeoff_obj_rec.ATTRIBUTE15,
164           x_CREATED_BY  => FND_GLOBAL.USER_ID,
165           X_CREATION_DATE  => SYSDATE,
166           x_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
167           X_LAST_UPDATE_DATE  => SYSDATE,
168           x_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID,
169           x_WRITEOFF_STATUS  => p_writeoff_obj_rec.WRITEOFF_STATUS,
170           x_WRITEOFF_TYPE_ID  => p_writeoff_obj_rec.WRITEOFF_TYPE_ID,
171           x_WRITEOFF_TYPE => p_writeoff_obj_rec.WRITEOFF_TYPE,
172           x_customer_trx_id => p_writeoff_obj_rec.customer_trx_id,
173           x_customer_trx_line_id => p_writeoff_obj_rec.customer_trx_line_id);
174 
175 
176         x_writeoff_object_id := v_writeoff_object_id;
177         IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
178         IEX_DEBUG_PUB.LogMessage('After Calling iex_writeoff_objects_pkg.insert_row'||
179         'and writeoff_object_id => '||x_writeoff_object_id);
180 END IF;
181 
182 
183 
184       -- Check return status from the above procedure call
185       IF x_return_status = FND_API.G_RET_STS_ERROR then
186           raise FND_API.G_EXC_ERROR;
187       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
188           raise FND_API.G_EXC_UNEXPECTED_ERROR;
189       END IF;
190 
191       --
192       -- End of API body.
193       --
194 
195       -- Standard check for p_commit
196       IF FND_API.to_Boolean( p_commit )
197       THEN
198           COMMIT WORK;
199       END IF;
200 
201       -- Standard call to get message count and if count is 1, get message info.
202       FND_MSG_PUB.Count_And_Get
203       (  p_count          =>   x_msg_count,
204          p_data           =>   x_msg_data
205       );
206 
207      IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
208      IEX_DEBUG_PUB.LogMessage ('********* End of Procedure =>IEX_writeoff_objects_PVT.create_writeoff_objects ******** ');
209      END IF;
210       EXCEPTION
211           WHEN FND_API.G_EXC_ERROR THEN
212                 ROLLBACK TO CREATE_WRITEOFF_OBJECTS_PVT;
213                 x_return_status := FND_API.G_RET_STS_ERROR ;
214                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
215                                            p_data        =>      x_msg_data);
216            WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
217                 ROLLBACK TO CREATE_WRITEOFF_OBJECTS_PVT;
218                 x_return_status :=  FND_API.G_RET_STS_UNEXP_ERROR ;
219                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
220                                            p_data        =>      x_msg_data);
221 
222           WHEN OTHERS THEN
223                 ROLLBACK TO CREATE_WRITEOFF_OBJECTS_PVT;
224                 x_return_status := FND_API.G_RET_STS_ERROR ;
225                 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME,l_api_name);
226                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
227                                            p_data        =>      x_msg_data);
228 
229 End create_writeoff_objects;
230 
231 
232 
233 PROCEDURE update_writeoff_objects(
234     P_Api_Version_Number         IN   NUMBER,
235     P_Init_Msg_List              IN   VARCHAR2,
236     P_Commit                     IN   VARCHAR2,
237     P_writeoff_obj_rec           IN    writeoff_obj_rec_Type,
238      x_return_status              OUT  NOCOPY VARCHAR2
239     ,x_msg_count                  OUT  NOCOPY NUMBER
240     ,x_msg_data                   OUT  NOCOPY VARCHAR2
241     ,XO_OBJECT_VERSION_NUMBER     OUT  NOCOPY NUMBER
242     )
243 
244  IS
245 l_api_name                CONSTANT VARCHAR2(60) := 'UPDATE_WRITEOFF_OBJECTS';
246 l_api_version_number      CONSTANT NUMBER   := 2.0;
247 v_object_version_number IEX_writeoff_objects.object_version_number%TYPE
248                          :=p_writeoff_obj_rec.object_version_number;
249 
250  BEGIN
251       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
252       IEX_DEBUG_PUB.LogMessage ('** Start of Procedure =>'||
253         'IEX_writeoff_objects_PVT.update_writeoff_objects *** ');
254      END IF;
255 
256       -- Standard Start of API savepoint
257       SAVEPOINT UPDATE_WRITEOFF_OBJECTS_PVT;
258 
259       -- Standard call to check for call compatibility.
260       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
261                           	               p_api_version_number,
262                                            l_api_name,
263                                            G_PKG_NAME)
264       THEN
265           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
266       END IF;
267 
268 
269       -- Initialize message list if p_init_msg_list is set to TRUE.
270       IF FND_API.to_Boolean( p_init_msg_list )
271       THEN
272           FND_MSG_PUB.initialize;
273       END IF;
274 
275       -- Initialize API return status to SUCCESS
276       x_return_status := FND_API.G_RET_STS_SUCCESS;
277 
278       --
279       -- API body
280       --
281 
282       -- Debug Message
283       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
284       IEX_DEBUG_PUB.LogMessage('Before Calling iex_writeoff_objects_pkg.lock_row');
285       END IF;
286       -- Invoke table handler(IEX_writeoff_objects_PKG.Update_Row)
287       -- call locking table handler
288       IEX_writeoff_objects_PKG.lock_row (
289          p_writeoff_obj_rec.writeoff_object_id,
290          v_object_version_number
291       );
292 
293       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
294       IEX_DEBUG_PUB.LogMessage('Before Calling iex_writeoff_objects_pkg.update_row');
295       END IF;
296 
297       IEX_writeoff_objects_PKG.Update_Row(
298           x_WRITEOFF_OBJECT_ID        => p_writeoff_obj_rec.writeoff_object_id,
299           x_WRITEOFF_ID               => p_writeoff_obj_rec.WRITEOFF_ID,
300           x_OBJECT_VERSION_NUMBER     => v_OBJECT_VERSION_NUMBER + 1,
301           x_CONTRACT_ID               => p_writeoff_obj_rec.CONTRACT_ID,
302           x_CONS_INVOICE_ID           => p_writeoff_obj_rec.CONS_INVOICE_ID,
303           x_CONS_INVOICE_LINE_ID      => p_writeoff_obj_rec.CONS_INVOICE_LINE_ID,
304           x_TRANSACTION_ID            => p_writeoff_obj_rec.TRANSACTION_ID,
305           x_ADJUSTMENT_AMOUNT         => p_writeoff_obj_rec.ADJUSTMENT_AMOUNT,
306           x_ADJUSTMENT_REASON_CODE    => p_writeoff_obj_rec.adjustment_reason_code,
307           x_RECEVIABLES_ADJUSTMENT_ID => p_writeoff_obj_rec.RECEVIABLES_ADJUSTMENT_ID,
308           x_REQUEST_ID                => p_writeoff_obj_rec.REQUEST_ID,
309           x_PROGRAM_APPLICATION_ID   => p_writeoff_obj_rec.PROGRAM_APPLICATION_ID,
310           x_PROGRAM_ID               => p_writeoff_obj_rec.PROGRAM_ID,
311           x_PROGRAM_UPDATE_DATE      => p_writeoff_obj_rec.PROGRAM_UPDATE_DATE,
312           x_ATTRIBUTE_CATEGORY       => p_writeoff_obj_rec.ATTRIBUTE_CATEGORY,
313           x_ATTRIBUTE1  => p_writeoff_obj_rec.ATTRIBUTE1,
314           x_ATTRIBUTE2  => p_writeoff_obj_rec.ATTRIBUTE2,
315           x_ATTRIBUTE3  => p_writeoff_obj_rec.ATTRIBUTE3,
316           x_ATTRIBUTE4  => p_writeoff_obj_rec.ATTRIBUTE4,
317           x_ATTRIBUTE5  => p_writeoff_obj_rec.ATTRIBUTE5,
318           x_ATTRIBUTE6  => p_writeoff_obj_rec.ATTRIBUTE6,
319           x_ATTRIBUTE7  => p_writeoff_obj_rec.ATTRIBUTE7,
320           x_ATTRIBUTE8  => p_writeoff_obj_rec.ATTRIBUTE8,
321           x_ATTRIBUTE9  => p_writeoff_obj_rec.ATTRIBUTE9,
322           x_ATTRIBUTE10  => p_writeoff_obj_rec.ATTRIBUTE10,
323           x_ATTRIBUTE11  => p_writeoff_obj_rec.ATTRIBUTE11,
324           x_ATTRIBUTE12  => p_writeoff_obj_rec.ATTRIBUTE12,
325           x_ATTRIBUTE13  => p_writeoff_obj_rec.ATTRIBUTE13,
326           x_ATTRIBUTE14  => p_writeoff_obj_rec.ATTRIBUTE14,
327           x_ATTRIBUTE15  => p_writeoff_obj_rec.ATTRIBUTE15,
328           x_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
329           X_LAST_UPDATE_DATE  => SYSDATE,
330           x_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID,
331           x_WRITEOFF_STATUS  => p_writeoff_obj_rec.WRITEOFF_STATUS,
332           x_WRITEOFF_TYPE_ID  => p_writeoff_obj_rec.WRITEOFF_TYPE_ID,
333           x_WRITEOFF_TYPE => p_writeoff_obj_rec.WRITEOFF_TYPE,
334           x_customer_trx_id => p_writeoff_obj_rec.customer_trx_id,
335           x_customer_trx_line_id => p_writeoff_obj_rec.customer_trx_line_id);
336 
337 
338      --Return Version number
339       xo_object_version_number := v_object_version_number + 1;
340       -- Check return status from the above procedure call
341       IF x_return_status = FND_API.G_RET_STS_ERROR then
342           raise FND_API.G_EXC_ERROR;
343       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
344           raise FND_API.G_EXC_UNEXPECTED_ERROR;
345       END IF;
346 
347       --
348       -- End of API body
349       --
350 
351       -- Standard check for p_commit
352       IF FND_API.to_Boolean( p_commit )
353       THEN
354           COMMIT WORK;
355       END IF;
356 
357 
358       -- Standard call to get message count and if count is 1, get message info.
359       FND_MSG_PUB.Count_And_Get
360       (  p_count          =>   x_msg_count,
361          p_data           =>   x_msg_data
362       );
363       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
364       IEX_DEBUG_PUB.LogMessage ('**** End of Procedure =>'||
365           'IEX_writeoff_objects_PVT.update_writeoff_objects ** ');
366       END IF;
367       EXCEPTION
368           WHEN FND_API.G_EXC_ERROR THEN
369                 ROLLBACK TO UPDATE_WRITEOFF_OBJECTS_PVT;
370                 x_return_status := FND_API.G_RET_STS_ERROR ;
371                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
372                                            p_data        =>      x_msg_data);
373            WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
374                 ROLLBACK TO UPDATE_WRITEOFF_OBJECTS_PVT;
375                 x_return_status :=  FND_API.G_RET_STS_UNEXP_ERROR ;
376                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
377                                            p_data        =>      x_msg_data);
378 
379           WHEN OTHERS THEN
380                 ROLLBACK TO UPDATE_WRITEOFF_OBJECTS_PVT;
381                 x_return_status := FND_API.G_RET_STS_ERROR ;
382                 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME,l_api_name);
383                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
384                                            p_data        =>      x_msg_data);
385 
386 End update_writeoff_objects;
387 
388 
389 
390 PROCEDURE delete_writeoff_objects(
391     P_Api_Version_Number         IN   NUMBER,
392     P_Init_Msg_List              IN   VARCHAR2,
393     P_Commit                     IN   VARCHAR2,
394     P_writeoff_object_id         IN NUMBER,
395     x_return_status              OUT  NOCOPY VARCHAR2
396     ,x_msg_count                  OUT  NOCOPY NUMBER
397     ,x_msg_data                   OUT  NOCOPY VARCHAR2    )
398 
399  IS
400 l_api_name                CONSTANT VARCHAR2(50) := 'DELETE_WRITEOFF_OBJECTS';
401 l_api_version_number      CONSTANT NUMBER   := 2.0;
402 
403  BEGIN
404       -- Standard Start of API savepoint
405       SAVEPOINT DELETE_WRITEOFF_OBJECTS_PVT;
406 
407       -- Standard call to check for call compatibility.
408       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
409                            	               p_api_version_number,
410                                            l_api_name,
411                                            G_PKG_NAME)
412       THEN
413           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
414       END IF;
415 
416 
417       -- Initialize message list if p_init_msg_list is set to TRUE.
418       IF FND_API.to_Boolean( p_init_msg_list )
419       THEN
420           FND_MSG_PUB.initialize;
421       END IF;
422 
423 
424       -- Initialize API return status to SUCCESS
425       x_return_status := FND_API.G_RET_STS_SUCCESS;
426       --
427       -- API body
428       --
429 
430       -- call table handler to insert into jtf_tasks_temp_groups
431       iex_writeoff_objects_pkg.delete_row (p_writeoff_object_id);
432 
433       -- Check return status from the above procedure call
434       IF x_return_status = FND_API.G_RET_STS_ERROR then
435           raise FND_API.G_EXC_ERROR;
436       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
437           raise FND_API.G_EXC_UNEXPECTED_ERROR;
438       END IF;
439 
440       --
441       -- End of API body
442       --
443 
444       -- Standard check for p_commit
445       IF FND_API.to_Boolean( p_commit )
446       THEN
447           COMMIT WORK;
448       END IF;
449 
450 
451       -- Standard call to get message count and if count is 1, get message info.
452       FND_MSG_PUB.Count_And_Get
453       (  p_count          =>   x_msg_count,
454          p_data           =>   x_msg_data
455       );
456       EXCEPTION
457           WHEN FND_API.G_EXC_ERROR THEN
458                 ROLLBACK TO DELETE_WRITEOFF_OBJECTS_PVT;
459                 x_return_status := FND_API.G_RET_STS_ERROR ;
460                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
461                                            p_data        =>      x_msg_data);
462            WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
463                 ROLLBACK TO DELETE_WRITEOFF_OBJECTS_PVT;
464                 x_return_status :=  FND_API.G_RET_STS_UNEXP_ERROR ;
465                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
466                                            p_data        =>      x_msg_data);
467 
468           WHEN OTHERS THEN
469                 ROLLBACK TO DELETE_WRITEOFF_OBJECTS_PVT;
470                 x_return_status := FND_API.G_RET_STS_ERROR ;
471                 FND_MSG_PUB.ADD_EXC_MSG(G_PKG_NAME,l_api_name);
472                 FND_MSG_PUB.Count_And_Get( p_count       =>      x_msg_count,
473                                            p_data        =>      x_msg_data);
474 
475 End delete_writeoff_objects;
476 
477 
478 End IEX_WRITEOFF_OBJECTS_PVT;