DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_AE_LINE_PVT

Source


1 PACKAGE BODY OZF_Ae_Line_PVT as
2 /* $Header: ozfvaelb.pls 115.5 2004/07/13 10:31:11 upoluri ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          OZF_Ae_Line_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_Ae_Line_PVT';
17 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvaelb.pls';
18 G_DEBUG BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
19 
20 -- Hint: Primary key needs to be returned.
21 PROCEDURE Create_Ae_Line(
22     p_api_version_number         IN   NUMBER,
23     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
24     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
25     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
26 
27     x_return_status              OUT  NOCOPY VARCHAR2,
28     x_msg_count                  OUT  NOCOPY NUMBER,
29     x_msg_data                   OUT  NOCOPY VARCHAR2,
30 
31     p_ae_line_tbl                IN   ae_line_tbl_type  := g_miss_ae_line_tbl,
32     x_ae_line_id                 OUT  NOCOPY number_tbl_type
33  )
34 IS
35 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Ae_Line';
36 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
37    l_return_status_full        VARCHAR2(1);
38    l_object_version_number     NUMBER := 1;
39    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
40    l_AE_LINE_ID                  NUMBER;
41    l_dummy       NUMBER;
42 
43    CURSOR c_id IS
44       SELECT OZF_AE_LINES_ALL_s.NEXTVAL
45       FROM dual;
46 
47    CURSOR c_id_exists (l_id IN NUMBER) IS
48       SELECT count(ae_line_id) FROM OZF_AE_LINES_ALL
49       WHERE AE_LINE_ID = l_id;
50 
51 BEGIN
52       -- Standard Start of API savepoint
53       SAVEPOINT CREATE_Ae_Line_PVT;
54 
55       -- Standard call to check for call compatibility.
56       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
57                                            p_api_version_number,
58                                            l_api_name,
59                                            G_PKG_NAME)
60       THEN
61           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
62       END IF;
63 
64       -- Initialize message list if p_init_msg_list is set to TRUE.
65       IF FND_API.to_Boolean( p_init_msg_list )
66       THEN
67          FND_MSG_PUB.initialize;
68       END IF;
69 
70       -- Debug Message
71       IF G_DEBUG THEN
72          OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
73       END IF;
74 
75 
76       -- Initialize API return status to SUCCESS
77       x_return_status := FND_API.G_RET_STS_SUCCESS;
78 
79 
80       -- =========================================================================
81       -- Validate Environment
82       -- =========================================================================
83       IF FND_GLOBAL.User_Id IS NULL
84       THEN
85           OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_USER_PROFILE_MISSING');
86           RAISE FND_API.G_EXC_ERROR;
87       END IF;
88 
89       /*
90       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
91       THEN
92           -- Debug message
93           IF G_DEBUG THEN
94             OZF_UTILITY_PVT.debug_message('Private API: Validate_Ae_Line');
95           END IF;
96 
97           -- Invoke validation procedures
98           Validate_ae_line(
99             p_api_version_number     => 1.0,
100             p_init_msg_list    => FND_API.G_FALSE,
101             p_validation_level => p_validation_level,
102             p_ae_line_rec  =>  p_ae_line_rec,
103             x_return_status    => x_return_status,
104             x_msg_count        => x_msg_count,
105             x_msg_data         => x_msg_data);
106       END IF;
107       */
108 
109       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
110           RAISE FND_API.G_EXC_ERROR;
111       END IF;
112 
113 
114       -- Debug Message
115       IF G_DEBUG THEN
116         OZF_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
117       END IF;
118       X_AE_Line_ID := number_tbl_type();
119       FOR i in 1..p_AE_LINE_Tbl.count LOOP
120         -- Local variable initialization
121         IF p_ae_line_tbl(i).AE_LINE_ID IS NULL OR
122            p_ae_line_tbl(i).AE_LINE_ID = FND_API.g_miss_num
123         THEN
124           LOOP
125              l_dummy := NULL;
126              OPEN c_id;
127                 FETCH c_id INTO l_AE_LINE_ID;
128              CLOSE c_id;
129 
130              OPEN c_id_exists(l_AE_LINE_ID);
131                 FETCH c_id_exists INTO l_dummy;
132              CLOSE c_id_exists;
133              -- Exit when the identifier uniqueness is established
134              EXIT WHEN l_dummy = 0;
135           END LOOP;
136         END IF;
137         -- set org id
138         l_org_id := p_ae_line_tbl(i).org_id;
139         -- Invoke table handler(OZF_AE_LINES_PKG.Insert_Row)
140         BEGIN
141          OZF_AE_LINES_PKG.Insert_Row(
142           px_ae_line_id  => l_ae_line_id,
143           px_object_version_number  => l_object_version_number,
144           p_last_update_date  => SYSDATE,
145           p_last_updated_by  => FND_GLOBAL.USER_ID,
146           p_creation_date  => SYSDATE,
147           p_created_by  => FND_GLOBAL.USER_ID,
148           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
149           p_request_id  => p_ae_line_tbl(i).request_id,
150           p_program_application_id  => p_ae_line_tbl(i).program_application_id,
151           p_program_update_date  => p_ae_line_tbl(i).program_update_date,
152           p_program_id  => p_ae_line_tbl(i).program_id,
153           p_accounted_cr  => p_ae_line_tbl(i).accounted_cr,
154           p_accounted_dr  => p_ae_line_tbl(i).accounted_dr,
155           p_accounting_error_code  => p_ae_line_tbl(i).accounting_error_code,
156           p_ae_header_id  => p_ae_line_tbl(i).ae_header_id,
157           p_ae_line_number  => p_ae_line_tbl(i).ae_line_number,
158           p_ae_line_type_code  => p_ae_line_tbl(i).ae_line_type_code,
159           p_applied_from_trx_hdr_id  => p_ae_line_tbl(i).applied_from_trx_hdr_id,
160           p_applied_from_trx_hdr_table  => p_ae_line_tbl(i).applied_from_trx_hdr_table,
161           p_applied_to_trx_hdr_id  => p_ae_line_tbl(i).applied_to_trx_hdr_id,
162           p_applied_to_trx_hdr_table  => p_ae_line_tbl(i).applied_to_trx_hdr_table,
163           p_code_combination_id  => p_ae_line_tbl(i).code_combination_id,
164           p_currency_code  => p_ae_line_tbl(i).currency_code,
165           p_currency_conversion_date  => p_ae_line_tbl(i).currency_conversion_date,
166           p_currency_conversion_rate  => p_ae_line_tbl(i).currency_conversion_rate,
167           p_currency_conversion_type  => p_ae_line_tbl(i).currency_conversion_type,
168           p_description  => p_ae_line_tbl(i).description,
169           p_entered_cr  => p_ae_line_tbl(i).entered_cr,
170           p_entered_dr  => p_ae_line_tbl(i).entered_dr,
171           p_gl_sl_link_id  => p_ae_line_tbl(i).gl_sl_link_id,
172           p_gl_transfer_error_code  => p_ae_line_tbl(i).gl_transfer_error_code,
173           px_org_id  => l_org_id,
174           p_reference1  => p_ae_line_tbl(i).reference1,
175           p_reference2  => p_ae_line_tbl(i).reference2,
176           p_reference3  => p_ae_line_tbl(i).reference3,
177           p_reference4  => p_ae_line_tbl(i).reference4,
178           p_reference5  => p_ae_line_tbl(i).reference5,
179           p_reference6  => p_ae_line_tbl(i).reference6,
180           p_reference7  => p_ae_line_tbl(i).reference7,
181           p_reference8  => p_ae_line_tbl(i).reference8,
182           p_reference9  => p_ae_line_tbl(i).reference9,
183           p_reference10  => p_ae_line_tbl(i).reference10,
184           p_source_id  => p_ae_line_tbl(i).source_id,
185           p_source_table  => p_ae_line_tbl(i).source_table,
186           p_stat_amount  => p_ae_line_tbl(i).stat_amount,
187           p_subledger_doc_sequence_id  => p_ae_line_tbl(i).subledger_doc_sequence_id,
188           p_subledger_doc_sequence_value  => p_ae_line_tbl(i).subledger_doc_sequence_value,
189           p_taxable_accounted_cr  => p_ae_line_tbl(i).taxable_accounted_cr,
190           p_taxable_accounted_dr  => p_ae_line_tbl(i).taxable_accounted_dr,
191           p_taxable_entered_cr  => p_ae_line_tbl(i).taxable_entered_cr,
192           p_taxable_entered_dr  => p_ae_line_tbl(i).taxable_entered_dr,
193           p_tax_code_id  => p_ae_line_tbl(i).tax_code_id,
194           p_tax_link_id  => p_ae_line_tbl(i).tax_link_id,
195           p_third_party_id  => p_ae_line_tbl(i).third_party_id,
196           p_third_party_sub_id  => p_ae_line_tbl(i).third_party_sub_id,
197           p_third_party_type  => p_ae_line_tbl(i).third_party_type,
198           p_ussgl_transaction_code  => p_ae_line_tbl(i).ussgl_transaction_code,
199           p_attribute_category  => p_ae_line_tbl(i).attribute_category,
200           p_attribute1  => p_ae_line_tbl(i).attribute1,
201           p_attribute2  => p_ae_line_tbl(i).attribute2,
202           p_attribute3  => p_ae_line_tbl(i).attribute3,
203           p_attribute4  => p_ae_line_tbl(i).attribute4,
204           p_attribute5  => p_ae_line_tbl(i).attribute5,
205           p_attribute6  => p_ae_line_tbl(i).attribute6,
206           p_attribute7  => p_ae_line_tbl(i).attribute7,
207           p_attribute8  => p_ae_line_tbl(i).attribute8,
208           p_attribute9  => p_ae_line_tbl(i).attribute9,
209           p_attribute10  => p_ae_line_tbl(i).attribute10,
210           p_attribute11  => p_ae_line_tbl(i).attribute11,
211           p_attribute12  => p_ae_line_tbl(i).attribute12,
212           p_attribute13  => p_ae_line_tbl(i).attribute13,
213           p_attribute14  => p_ae_line_tbl(i).attribute14,
214           p_attribute15  => p_ae_line_tbl(i).attribute15);
215         EXCEPTION
216          WHEN OTHERS THEN
217            IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
218              FND_MESSAGE.set_name('OZF', 'OZF_TABLE_HANDLER_ERROR');
219              FND_MSG_PUB.add;
220            END IF;
221            IF G_DEBUG THEN
222              OZF_UTILITY_PVT.debug_message(sqlerrm);
223            END IF;
224            RAISE FND_API.g_exc_error;
225         END;
226         X_AE_Line_ID.extend;
227         X_AE_LINE_ID(i) := l_ae_line_id;
228       END LOOP;
229       --
230       -- End of API body
231       --
232 
233       -- Standard check for p_commit
234       IF FND_API.to_Boolean( p_commit )
235       THEN
236          COMMIT WORK;
237       END IF;
238 
239       -- Debug Message
240       IF G_DEBUG THEN
241         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
242       END IF;
243 
244       -- Standard call to get message count and if count is 1, get message info.
245       FND_MSG_PUB.Count_And_Get
246         (p_count          =>   x_msg_count,
247          p_data           =>   x_msg_data
248       );
249 EXCEPTION
250    WHEN OZF_Utility_PVT.resource_locked THEN
251      x_return_status := FND_API.g_ret_sts_error;
252      OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
253    WHEN FND_API.G_EXC_ERROR THEN
254      ROLLBACK TO CREATE_Ae_Line_PVT;
255      x_return_status := FND_API.G_RET_STS_ERROR;
256      -- Standard call to get message count and if count=1, get the message
257      FND_MSG_PUB.Count_And_Get (
258             p_encoded => FND_API.G_FALSE,
259             p_count   => x_msg_count,
260             p_data    => x_msg_data
261      );
262    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
263      ROLLBACK TO CREATE_Ae_Line_PVT;
264      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
265      -- Standard call to get message count and if count=1, get the message
266      FND_MSG_PUB.Count_And_Get (
267             p_encoded => FND_API.G_FALSE,
268             p_count => x_msg_count,
269             p_data  => x_msg_data
270      );
271    WHEN OTHERS THEN
272      ROLLBACK TO CREATE_Ae_Line_PVT;
273      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
274      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
275      THEN
276         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
277      END IF;
278      -- Standard call to get message count and if count=1, get the message
279      FND_MSG_PUB.Count_And_Get (
280             p_encoded => FND_API.G_FALSE,
281             p_count => x_msg_count,
282             p_data  => x_msg_data
283      );
284 End Create_Ae_Line;
285 
286 PROCEDURE Update_Ae_Line(
287     p_api_version_number         IN   NUMBER,
288     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
289     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
290     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
291 
292     x_return_status              OUT  NOCOPY VARCHAR2,
293     x_msg_count                  OUT  NOCOPY NUMBER,
294     x_msg_data                   OUT  NOCOPY VARCHAR2,
295 
296     p_ae_line_rec               IN    ae_line_rec_type,
297     x_object_version_number      OUT  NOCOPY NUMBER
298     )
299 
300  IS
301 
302 CURSOR c_get_ae_line(p_ae_line_id NUMBER) IS
303     SELECT *
304     FROM   OZF_AE_LINES_ALL
305     WHERE  ae_line_id = p_ae_line_id;
306 
307 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Ae_Line';
308 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
309 -- Local Variables
310 l_object_version_number     NUMBER;
311 l_AE_LINE_ID    NUMBER;
312 l_ref_ae_line_rec  c_get_Ae_Line%ROWTYPE ;
313 l_tar_ae_line_rec  OZF_Ae_Line_PVT.ae_line_rec_type := P_ae_line_rec;
314 l_rowid  ROWID;
315 
316  BEGIN
317       -- Standard Start of API savepoint
318       SAVEPOINT UPDATE_Ae_Line_PVT;
319 
320       -- Standard call to check for call compatibility.
321       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
322                                            p_api_version_number,
323                                            l_api_name,
324                                            G_PKG_NAME)
325       THEN
326           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
327       END IF;
328 
329       -- Initialize message list if p_init_msg_list is set to TRUE.
330       IF FND_API.to_Boolean( p_init_msg_list )
331       THEN
332          FND_MSG_PUB.initialize;
333       END IF;
334 
335       -- Debug Message
336       IF G_DEBUG THEN
337         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
338       END IF;
339 
340 
341       -- Initialize API return status to SUCCESS
342       x_return_status := FND_API.G_RET_STS_SUCCESS;
343 
344       -- Debug Message
345       IF G_DEBUG THEN
346         OZF_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
347       END IF;
348 
349 /*
350       OPEN c_get_Ae_Line( l_tar_ae_line_rec.ae_line_id);
351 
352       FETCH c_get_Ae_Line INTO l_ref_ae_line_rec  ;
353 
354        If ( c_get_Ae_Line%NOTFOUND) THEN
355            OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RECORD_NOT_FOUND');
356            RAISE FND_API.G_EXC_ERROR;
357        END IF;
358        -- Debug Message
359        IF G_DEBUG THEN
360          OZF_UTILITY_PVT.debug_message('Private API: - Close Cursor');
361        END IF;
362        CLOSE     c_get_Ae_Line;
363 */
364 
365 
366       If (l_tar_ae_line_rec.object_version_number is NULL or
367           l_tar_ae_line_rec.object_version_number = FND_API.G_MISS_NUM ) Then
368           OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_NO_OBJ_VER_NUM');
369           raise FND_API.G_EXC_ERROR;
370       End if;
371       -- Check Whether record has been changed by someone else
372       If (l_tar_ae_line_rec.object_version_number <> l_ref_ae_line_rec.object_version_number) Then
373           OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
374           raise FND_API.G_EXC_ERROR;
375       End if;
376       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
380             OZF_UTILITY_PVT.debug_message('Private API: Validate_Ae_Line');
377       THEN
378           -- Debug message
379           IF G_DEBUG THEN
381           END IF;
382 
383           -- Invoke validation procedures
384           Validate_ae_line(
385             p_api_version_number     => 1.0,
386             p_init_msg_list    => FND_API.G_FALSE,
387             p_validation_level => p_validation_level,
388             p_ae_line_rec  =>  p_ae_line_rec,
389             x_return_status    => x_return_status,
390             x_msg_count        => x_msg_count,
391             x_msg_data         => x_msg_data);
392       END IF;
393 
394       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
395           RAISE FND_API.G_EXC_ERROR;
396       END IF;
397 
398 
399       -- Debug Message
400       IF G_DEBUG THEN
401         OZF_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
402       END IF;
403 
404       -- Invoke table handler(OZF_AE_LINES_PKG.Update_Row)
405       OZF_AE_LINES_PKG.Update_Row(
406           p_ae_line_id  => p_ae_line_rec.ae_line_id,
407           p_object_version_number  => p_ae_line_rec.object_version_number,
408           p_last_update_date  => SYSDATE,
409           p_last_updated_by  => FND_GLOBAL.USER_ID,
410           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
411           p_request_id  => p_ae_line_rec.request_id,
412           p_program_application_id  => p_ae_line_rec.program_application_id,
413           p_program_update_date  => p_ae_line_rec.program_update_date,
414           p_program_id  => p_ae_line_rec.program_id,
415           p_accounted_cr  => p_ae_line_rec.accounted_cr,
416           p_accounted_dr  => p_ae_line_rec.accounted_dr,
417           p_accounting_error_code  => p_ae_line_rec.accounting_error_code,
418           p_ae_header_id  => p_ae_line_rec.ae_header_id,
419           p_ae_line_number  => p_ae_line_rec.ae_line_number,
420           p_ae_line_type_code  => p_ae_line_rec.ae_line_type_code,
421           p_applied_from_trx_hdr_id  => p_ae_line_rec.applied_from_trx_hdr_id,
422           p_applied_from_trx_hdr_table  => p_ae_line_rec.applied_from_trx_hdr_table,
423           p_applied_to_trx_hdr_id  => p_ae_line_rec.applied_to_trx_hdr_id,
424           p_applied_to_trx_hdr_table  => p_ae_line_rec.applied_to_trx_hdr_table,
425           p_code_combination_id  => p_ae_line_rec.code_combination_id,
426           p_currency_code  => p_ae_line_rec.currency_code,
427           p_currency_conversion_date  => p_ae_line_rec.currency_conversion_date,
428           p_currency_conversion_rate  => p_ae_line_rec.currency_conversion_rate,
429           p_currency_conversion_type  => p_ae_line_rec.currency_conversion_type,
430           p_description  => p_ae_line_rec.description,
431           p_entered_cr  => p_ae_line_rec.entered_cr,
432           p_entered_dr  => p_ae_line_rec.entered_dr,
433           p_gl_sl_link_id  => p_ae_line_rec.gl_sl_link_id,
434           p_gl_transfer_error_code  => p_ae_line_rec.gl_transfer_error_code,
435           p_org_id  => p_ae_line_rec.org_id,
436           p_reference1  => p_ae_line_rec.reference1,
437           p_reference2  => p_ae_line_rec.reference2,
438           p_reference3  => p_ae_line_rec.reference3,
439           p_reference4  => p_ae_line_rec.reference4,
440           p_reference5  => p_ae_line_rec.reference5,
441           p_reference6  => p_ae_line_rec.reference6,
442           p_reference7  => p_ae_line_rec.reference7,
443           p_reference8  => p_ae_line_rec.reference8,
444           p_reference9  => p_ae_line_rec.reference9,
445           p_reference10  => p_ae_line_rec.reference10,
446           p_source_id  => p_ae_line_rec.source_id,
447           p_source_table  => p_ae_line_rec.source_table,
448           p_stat_amount  => p_ae_line_rec.stat_amount,
449           p_subledger_doc_sequence_id  => p_ae_line_rec.subledger_doc_sequence_id,
450           p_subledger_doc_sequence_value  => p_ae_line_rec.subledger_doc_sequence_value,
451           p_taxable_accounted_cr  => p_ae_line_rec.taxable_accounted_cr,
452           p_taxable_accounted_dr  => p_ae_line_rec.taxable_accounted_dr,
453           p_taxable_entered_cr  => p_ae_line_rec.taxable_entered_cr,
454           p_taxable_entered_dr  => p_ae_line_rec.taxable_entered_dr,
455           p_tax_code_id  => p_ae_line_rec.tax_code_id,
456           p_tax_link_id  => p_ae_line_rec.tax_link_id,
457           p_third_party_id  => p_ae_line_rec.third_party_id,
458           p_third_party_sub_id  => p_ae_line_rec.third_party_sub_id,
459           p_third_party_type  => p_ae_line_rec.third_party_type,
460           p_ussgl_transaction_code  => p_ae_line_rec.ussgl_transaction_code,
461           p_attribute_category  => p_ae_line_rec.attribute_category,
462           p_attribute1  => p_ae_line_rec.attribute1,
463           p_attribute2  => p_ae_line_rec.attribute2,
464           p_attribute3  => p_ae_line_rec.attribute3,
465           p_attribute4  => p_ae_line_rec.attribute4,
466           p_attribute5  => p_ae_line_rec.attribute5,
467           p_attribute6  => p_ae_line_rec.attribute6,
468           p_attribute7  => p_ae_line_rec.attribute7,
469           p_attribute8  => p_ae_line_rec.attribute8,
470           p_attribute9  => p_ae_line_rec.attribute9,
471           p_attribute10  => p_ae_line_rec.attribute10,
472           p_attribute11  => p_ae_line_rec.attribute11,
473           p_attribute12  => p_ae_line_rec.attribute12,
474           p_attribute13  => p_ae_line_rec.attribute13,
475           p_attribute14  => p_ae_line_rec.attribute14,
476           p_attribute15  => p_ae_line_rec.attribute15);
477       --
478       -- End of API body.
479       --
480 
481       -- Standard check for p_commit
482       IF FND_API.to_Boolean( p_commit )
483       THEN
484          COMMIT WORK;
485       END IF;
486 
487 
488       -- Debug Message
489       IF G_DEBUG THEN
493       -- Standard call to get message count and if count is 1, get message info.
490         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
491       END IF;
492 
494       FND_MSG_PUB.Count_And_Get
495         (p_count          =>   x_msg_count,
496          p_data           =>   x_msg_data
497       );
498 EXCEPTION
499 
500    WHEN OZF_Utility_PVT.resource_locked THEN
501      x_return_status := FND_API.g_ret_sts_error;
502  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
503 
504    WHEN FND_API.G_EXC_ERROR THEN
505      ROLLBACK TO UPDATE_Ae_Line_PVT;
506      x_return_status := FND_API.G_RET_STS_ERROR;
507      -- Standard call to get message count and if count=1, get the message
508      FND_MSG_PUB.Count_And_Get (
509             p_encoded => FND_API.G_FALSE,
510             p_count   => x_msg_count,
511             p_data    => x_msg_data
512      );
513 
514    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
515      ROLLBACK TO UPDATE_Ae_Line_PVT;
516      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
517      -- Standard call to get message count and if count=1, get the message
518      FND_MSG_PUB.Count_And_Get (
519             p_encoded => FND_API.G_FALSE,
520             p_count => x_msg_count,
521             p_data  => x_msg_data
522      );
523 
524    WHEN OTHERS THEN
525      ROLLBACK TO UPDATE_Ae_Line_PVT;
526      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
527      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
528      THEN
529         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
530      END IF;
531      -- Standard call to get message count and if count=1, get the message
532      FND_MSG_PUB.Count_And_Get (
533             p_encoded => FND_API.G_FALSE,
534             p_count => x_msg_count,
535             p_data  => x_msg_data
536      );
537 End Update_Ae_Line;
538 
539 
540 PROCEDURE Delete_Ae_Line(
541     p_api_version_number         IN   NUMBER,
542     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
543     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
544     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
545     x_return_status              OUT  NOCOPY VARCHAR2,
546     x_msg_count                  OUT  NOCOPY NUMBER,
547     x_msg_data                   OUT  NOCOPY VARCHAR2,
548     p_ae_line_id                   IN  NUMBER,
549     p_object_version_number      IN   NUMBER
550     )
551 
552  IS
553 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Ae_Line';
554 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
555 l_object_version_number     NUMBER;
556 
557  BEGIN
558       -- Standard Start of API savepoint
559       SAVEPOINT DELETE_Ae_Line_PVT;
560 
561       -- Standard call to check for call compatibility.
562       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
563                                            p_api_version_number,
564                                            l_api_name,
565                                            G_PKG_NAME)
566       THEN
567           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
568       END IF;
569 
570       -- Initialize message list if p_init_msg_list is set to TRUE.
571       IF FND_API.to_Boolean( p_init_msg_list )
572       THEN
573          FND_MSG_PUB.initialize;
574       END IF;
575 
576       -- Debug Message
577       IF G_DEBUG THEN
578         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
579       END IF;
580 
581 
582       -- Initialize API return status to SUCCESS
583       x_return_status := FND_API.G_RET_STS_SUCCESS;
584 
585       --
586       -- Api body
587       --
588       -- Debug Message
589       IF G_DEBUG THEN
590         OZF_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
591       END IF;
592 
593       -- Invoke table handler(OZF_AE_LINES_PKG.Delete_Row)
594       OZF_AE_LINES_PKG.Delete_Row(
595           p_AE_LINE_ID  => p_AE_LINE_ID);
596       --
597       -- End of API body
598       --
599 
600       -- Standard check for p_commit
601       IF FND_API.to_Boolean( p_commit )
602       THEN
603          COMMIT WORK;
604       END IF;
605 
606 
607       -- Debug Message
608       IF G_DEBUG THEN
609         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
610       END IF;
611 
612       -- Standard call to get message count and if count is 1, get message info.
613       FND_MSG_PUB.Count_And_Get
614         (p_count          =>   x_msg_count,
615          p_data           =>   x_msg_data
616       );
617 EXCEPTION
618 
619    WHEN OZF_Utility_PVT.resource_locked THEN
620      x_return_status := FND_API.g_ret_sts_error;
621  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
622 
623    WHEN FND_API.G_EXC_ERROR THEN
624      ROLLBACK TO DELETE_Ae_Line_PVT;
625      x_return_status := FND_API.G_RET_STS_ERROR;
626      -- Standard call to get message count and if count=1, get the message
627      FND_MSG_PUB.Count_And_Get (
628             p_encoded => FND_API.G_FALSE,
629             p_count   => x_msg_count,
630             p_data    => x_msg_data
631      );
632 
633    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
634      ROLLBACK TO DELETE_Ae_Line_PVT;
635      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
636      -- Standard call to get message count and if count=1, get the message
637      FND_MSG_PUB.Count_And_Get (
638             p_encoded => FND_API.G_FALSE,
639             p_count => x_msg_count,
643    WHEN OTHERS THEN
640             p_data  => x_msg_data
641      );
642 
644      ROLLBACK TO DELETE_Ae_Line_PVT;
645      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
646      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
647      THEN
648         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
649      END IF;
650      -- Standard call to get message count and if count=1, get the message
651      FND_MSG_PUB.Count_And_Get (
652             p_encoded => FND_API.G_FALSE,
653             p_count => x_msg_count,
654             p_data  => x_msg_data
655      );
656 End Delete_Ae_Line;
657 
658 
659 
660 -- Hint: Primary key needs to be returned.
661 PROCEDURE Lock_Ae_Line(
662     p_api_version_number         IN   NUMBER,
663     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
664 
665     x_return_status              OUT  NOCOPY VARCHAR2,
666     x_msg_count                  OUT  NOCOPY NUMBER,
667     x_msg_data                   OUT  NOCOPY VARCHAR2,
668 
669     p_ae_line_id                   IN  NUMBER,
670     p_object_version             IN  NUMBER
671     )
672 
673  IS
674 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Ae_Line';
675 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
676 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
677 l_AE_LINE_ID                  NUMBER;
678 
679 CURSOR c_Ae_Line IS
680    SELECT AE_LINE_ID
681    FROM OZF_AE_LINES_ALL
682    WHERE AE_LINE_ID = p_AE_LINE_ID
683    AND object_version_number = p_object_version
684    FOR UPDATE NOWAIT;
685 
686 BEGIN
687 
688       -- Debug Message
689       IF G_DEBUG THEN
690         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
691       END IF;
692 
693       -- Initialize message list if p_init_msg_list is set to TRUE.
694       IF FND_API.to_Boolean( p_init_msg_list )
695       THEN
696          FND_MSG_PUB.initialize;
697       END IF;
698 
699       -- Standard call to check for call compatibility.
700       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
701                                            p_api_version_number,
702                                            l_api_name,
703                                            G_PKG_NAME)
704       THEN
705           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
706       END IF;
707 
708 
709       -- Initialize API return status to SUCCESS
710       x_return_status := FND_API.G_RET_STS_SUCCESS;
711 
712 
713 ------------------------ lock -------------------------
714 
715   IF G_DEBUG THEN
716     OZF_Utility_PVT.debug_message(l_full_name||': start');
717   END IF;
718   OPEN c_Ae_Line;
719 
720   FETCH c_Ae_Line INTO l_AE_LINE_ID;
721 
722   IF (c_Ae_Line%NOTFOUND) THEN
723     CLOSE c_Ae_Line;
724     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
725        FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
726        FND_MSG_PUB.add;
727     END IF;
728     RAISE FND_API.g_exc_error;
729   END IF;
730 
731   CLOSE c_Ae_Line;
732 
733  -------------------- finish --------------------------
734   FND_MSG_PUB.count_and_get(
735     p_encoded => FND_API.g_false,
736     p_count   => x_msg_count,
737     p_data    => x_msg_data);
738   IF G_DEBUG THEN
739     OZF_Utility_PVT.debug_message(l_full_name ||': end');
740   END IF;
741 EXCEPTION
742 
743    WHEN OZF_Utility_PVT.resource_locked THEN
744      x_return_status := FND_API.g_ret_sts_error;
745  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
746 
747    WHEN FND_API.G_EXC_ERROR THEN
748      ROLLBACK TO LOCK_Ae_Line_PVT;
749      x_return_status := FND_API.G_RET_STS_ERROR;
750      -- Standard call to get message count and if count=1, get the message
751      FND_MSG_PUB.Count_And_Get (
752             p_encoded => FND_API.G_FALSE,
753             p_count   => x_msg_count,
754             p_data    => x_msg_data
755      );
756 
757    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
758      ROLLBACK TO LOCK_Ae_Line_PVT;
759      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
760      -- Standard call to get message count and if count=1, get the message
761      FND_MSG_PUB.Count_And_Get (
762             p_encoded => FND_API.G_FALSE,
763             p_count => x_msg_count,
764             p_data  => x_msg_data
765      );
766 
767    WHEN OTHERS THEN
768      ROLLBACK TO LOCK_Ae_Line_PVT;
769      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
770      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
771      THEN
772         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
773      END IF;
774      -- Standard call to get message count and if count=1, get the message
775      FND_MSG_PUB.Count_And_Get (
776             p_encoded => FND_API.G_FALSE,
777             p_count => x_msg_count,
778             p_data  => x_msg_data
779      );
780 End Lock_Ae_Line;
781 
782 
783 PROCEDURE check_ae_line_uk_items(
784     p_ae_line_rec               IN   ae_line_rec_type,
785     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
786     x_return_status              OUT NOCOPY VARCHAR2)
787 IS
788 l_valid_flag  VARCHAR2(1);
789 
790 BEGIN
791       x_return_status := FND_API.g_ret_sts_success;
792       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
793          l_valid_flag := OZF_Utility_PVT.check_uniqueness(
794          'OZF_AE_LINES_ALL',
795          'AE_LINE_ID = ''' || p_ae_line_rec.AE_LINE_ID ||''''
796          );
797       ELSE
801          ''' AND AE_LINE_ID <> ' || p_ae_line_rec.AE_LINE_ID
798          l_valid_flag := OZF_Utility_PVT.check_uniqueness(
799          'OZF_AE_LINES_ALL',
800          'AE_LINE_ID = ''' || p_ae_line_rec.AE_LINE_ID ||
802          );
803       END IF;
804 
805       IF l_valid_flag = FND_API.g_false THEN
806          OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_AE_LINE_ID_DUPLICATE');
807          x_return_status := FND_API.g_ret_sts_error;
808          RETURN;
809       END IF;
810 
811 END check_ae_line_uk_items;
812 
813 PROCEDURE check_ae_line_req_items(
814     p_ae_line_rec               IN  ae_line_rec_type,
815     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
816     x_return_status	         OUT NOCOPY VARCHAR2
817 )
818 IS
819 BEGIN
820    x_return_status := FND_API.g_ret_sts_success;
821 
822    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
823 
824 
825       IF p_ae_line_rec.ae_line_id = FND_API.g_miss_num OR p_ae_line_rec.ae_line_id IS NULL THEN
826          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_ID' );
827          x_return_status := FND_API.g_ret_sts_error;
828          RETURN;
829       END IF;
830 
831 
832       IF p_ae_line_rec.object_version_number = FND_API.g_miss_num OR p_ae_line_rec.object_version_number IS NULL THEN
833          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
834          x_return_status := FND_API.g_ret_sts_error;
835          RETURN;
836       END IF;
837 
838 
839       IF p_ae_line_rec.last_update_date = FND_API.g_miss_date OR p_ae_line_rec.last_update_date IS NULL THEN
840          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_DATE' );
841          x_return_status := FND_API.g_ret_sts_error;
842          RETURN;
843       END IF;
844 
845 
846       IF p_ae_line_rec.last_updated_by = FND_API.g_miss_num OR p_ae_line_rec.last_updated_by IS NULL THEN
847          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATED_BY' );
848          x_return_status := FND_API.g_ret_sts_error;
849          RETURN;
850       END IF;
851 
852 
853       IF p_ae_line_rec.creation_date = FND_API.g_miss_date OR p_ae_line_rec.creation_date IS NULL THEN
854          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CREATION_DATE' );
855          x_return_status := FND_API.g_ret_sts_error;
856          RETURN;
857       END IF;
858 
859 
860       IF p_ae_line_rec.created_by = FND_API.g_miss_num OR p_ae_line_rec.created_by IS NULL THEN
861          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CREATED_BY' );
862          x_return_status := FND_API.g_ret_sts_error;
863          RETURN;
864       END IF;
865 
866 
867       IF p_ae_line_rec.ae_header_id = FND_API.g_miss_num OR p_ae_line_rec.ae_header_id IS NULL THEN
868          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_HEADER_ID' );
869          x_return_status := FND_API.g_ret_sts_error;
870          RETURN;
871       END IF;
872 
873 
874       IF p_ae_line_rec.ae_line_number = FND_API.g_miss_num OR p_ae_line_rec.ae_line_number IS NULL THEN
875          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_NUMBER' );
876          x_return_status := FND_API.g_ret_sts_error;
877          RETURN;
878       END IF;
879 
880 
881       IF p_ae_line_rec.ae_line_type_code = FND_API.g_miss_char OR p_ae_line_rec.ae_line_type_code IS NULL THEN
882          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_TYPE_CODE' );
883          x_return_status := FND_API.g_ret_sts_error;
884          RETURN;
885       END IF;
886 
887 
888       IF p_ae_line_rec.code_combination_id = FND_API.g_miss_num OR p_ae_line_rec.code_combination_id IS NULL THEN
889          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CODE_COMBINATION_ID' );
890          x_return_status := FND_API.g_ret_sts_error;
891          RETURN;
892       END IF;
893 
894 
895       IF p_ae_line_rec.source_id = FND_API.g_miss_num OR p_ae_line_rec.source_id IS NULL THEN
896          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'SOURCE_ID' );
897          x_return_status := FND_API.g_ret_sts_error;
898          RETURN;
899       END IF;
900 
901 
902       IF p_ae_line_rec.source_table = FND_API.g_miss_char OR p_ae_line_rec.source_table IS NULL THEN
903          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'SOURCE_TABLE' );
904          x_return_status := FND_API.g_ret_sts_error;
905          RETURN;
906       END IF;
907    ELSE
908 
909 
910       IF p_ae_line_rec.ae_line_id IS NULL THEN
911          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_ID' );
912          x_return_status := FND_API.g_ret_sts_error;
913          RETURN;
914       END IF;
915 
916 
917       IF p_ae_line_rec.object_version_number IS NULL THEN
918          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_VERSION_NUMBER' );
919          x_return_status := FND_API.g_ret_sts_error;
920          RETURN;
921       END IF;
922 
923 
924       IF p_ae_line_rec.last_update_date IS NULL THEN
925          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_DATE' );
926          x_return_status := FND_API.g_ret_sts_error;
927          RETURN;
928       END IF;
929 
930 
931       IF p_ae_line_rec.last_updated_by IS NULL THEN
932          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATED_BY' );
933          x_return_status := FND_API.g_ret_sts_error;
934          RETURN;
935       END IF;
939          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CREATION_DATE' );
936 
937 
938       IF p_ae_line_rec.creation_date IS NULL THEN
940          x_return_status := FND_API.g_ret_sts_error;
941          RETURN;
942       END IF;
943 
944 
945       IF p_ae_line_rec.created_by IS NULL THEN
946          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CREATED_BY' );
947          x_return_status := FND_API.g_ret_sts_error;
948          RETURN;
949       END IF;
950 
951 
952       IF p_ae_line_rec.ae_header_id IS NULL THEN
953          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_HEADER_ID' );
954          x_return_status := FND_API.g_ret_sts_error;
955          RETURN;
956       END IF;
957 
958 
959       IF p_ae_line_rec.ae_line_number IS NULL THEN
960          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_NUMBER' );
961          x_return_status := FND_API.g_ret_sts_error;
962          RETURN;
963       END IF;
964 
965 
966       IF p_ae_line_rec.ae_line_type_code IS NULL THEN
967          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'AE_LINE_TYPE_CODE' );
968          x_return_status := FND_API.g_ret_sts_error;
969          RETURN;
970       END IF;
971 
972 
973       IF p_ae_line_rec.code_combination_id IS NULL THEN
974          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'CODE_COMBINATION_ID' );
975          x_return_status := FND_API.g_ret_sts_error;
976          RETURN;
977       END IF;
978 
979 
980       IF p_ae_line_rec.source_id IS NULL THEN
981          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'SOURCE_ID' );
982          x_return_status := FND_API.g_ret_sts_error;
983          RETURN;
984       END IF;
985 
986 
987       IF p_ae_line_rec.source_table IS NULL THEN
988          OZF_Utility_PVT.Error_Message('OZF_API_MISSING_FIELD', 'MISS_FIELD', 'SOURCE_TABLE' );
989          x_return_status := FND_API.g_ret_sts_error;
990          RETURN;
991       END IF;
992    END IF;
993 
994 END check_ae_line_req_items;
995 
996 PROCEDURE check_ae_line_FK_items(
997     p_ae_line_rec IN ae_line_rec_type,
998     x_return_status OUT NOCOPY VARCHAR2
999 )
1000 IS
1001 BEGIN
1002    x_return_status := FND_API.g_ret_sts_success;
1003 
1004    -- Enter custom code here
1005 
1006 END check_ae_line_FK_items;
1007 
1008 PROCEDURE check_ae_line_Lk_items(
1009     p_ae_line_rec IN ae_line_rec_type,
1010     x_return_status OUT NOCOPY VARCHAR2
1011 )
1012 IS
1013 BEGIN
1014    x_return_status := FND_API.g_ret_sts_success;
1015 
1016    -- Enter custom code here
1017 
1018 END check_ae_line_Lk_items;
1019 
1020 PROCEDURE Check_ae_line_Items (
1021     P_ae_line_rec     IN    ae_line_rec_type,
1022     p_validation_mode  IN    VARCHAR2,
1023     x_return_status    OUT   NOCOPY VARCHAR2
1024     )
1025 IS
1026 BEGIN
1027 
1028    -- Check Items Uniqueness API calls
1029 
1030    check_ae_line_uk_items(
1031       p_ae_line_rec => p_ae_line_rec,
1032       p_validation_mode => p_validation_mode,
1033       x_return_status => x_return_status);
1034    IF x_return_status <> FND_API.g_ret_sts_success THEN
1035       RETURN;
1036    END IF;
1037 
1038    -- Check Items Required/NOT NULL API calls
1039 
1040    check_ae_line_req_items(
1041       p_ae_line_rec => p_ae_line_rec,
1042       p_validation_mode => p_validation_mode,
1043       x_return_status => x_return_status);
1044    IF x_return_status <> FND_API.g_ret_sts_success THEN
1045       RETURN;
1046    END IF;
1047    -- Check Items Foreign Keys API calls
1048 
1049    check_ae_line_FK_items(
1050       p_ae_line_rec => p_ae_line_rec,
1051       x_return_status => x_return_status);
1052    IF x_return_status <> FND_API.g_ret_sts_success THEN
1053       RETURN;
1054    END IF;
1055    -- Check Items Lookups
1056 
1057    check_ae_line_Lk_items(
1058       p_ae_line_rec => p_ae_line_rec,
1059       x_return_status => x_return_status);
1060    IF x_return_status <> FND_API.g_ret_sts_success THEN
1061       RETURN;
1062    END IF;
1063 
1064 END Check_ae_line_Items;
1065 
1066 PROCEDURE Complete_ae_line_Rec (
1067    p_ae_line_rec IN ae_line_rec_type,
1068    x_complete_rec OUT NOCOPY ae_line_rec_type)
1069 IS
1070    l_return_status  VARCHAR2(1);
1071 
1072    CURSOR c_complete IS
1073       SELECT *
1074       FROM ozf_ae_lines_all
1075       WHERE ae_line_id = p_ae_line_rec.ae_line_id;
1076    l_ae_line_rec c_complete%ROWTYPE;
1077 BEGIN
1078    x_complete_rec := p_ae_line_rec;
1079 
1080 
1081    OPEN c_complete;
1082    FETCH c_complete INTO l_ae_line_rec;
1083    CLOSE c_complete;
1084 
1085    -- ae_line_id
1086    IF p_ae_line_rec.ae_line_id = FND_API.g_miss_num THEN
1087       x_complete_rec.ae_line_id := NULL;
1088    END IF;
1089    IF p_ae_line_rec.ae_line_id IS NULL THEN
1090       x_complete_rec.ae_line_id := l_ae_line_rec.ae_line_id;
1091    END IF;
1092 
1093    -- object_version_number
1094    IF p_ae_line_rec.object_version_number = FND_API.g_miss_num THEN
1095       x_complete_rec.object_version_number := NULL;
1096    END IF;
1097    IF p_ae_line_rec.object_version_number IS NULL THEN
1098       x_complete_rec.object_version_number := l_ae_line_rec.object_version_number;
1099    END IF;
1100 
1101    -- last_update_date
1102    IF p_ae_line_rec.last_update_date = FND_API.g_miss_date THEN
1103       x_complete_rec.last_update_date := NULL;
1104    END IF;
1108 
1105    IF p_ae_line_rec.last_update_date IS NULL THEN
1106       x_complete_rec.last_update_date := l_ae_line_rec.last_update_date;
1107    END IF;
1109    -- last_updated_by
1110    IF p_ae_line_rec.last_updated_by = FND_API.g_miss_num THEN
1111       x_complete_rec.last_updated_by := NULL;
1112    END IF;
1113    IF p_ae_line_rec.last_updated_by IS NULL THEN
1114       x_complete_rec.last_updated_by := l_ae_line_rec.last_updated_by;
1115    END IF;
1116 
1117    -- creation_date
1118    IF p_ae_line_rec.creation_date = FND_API.g_miss_date THEN
1119       x_complete_rec.creation_date := NULL;
1120    END IF;
1121    IF p_ae_line_rec.creation_date IS NULL THEN
1122       x_complete_rec.creation_date := l_ae_line_rec.creation_date;
1123    END IF;
1124 
1125    -- created_by
1126    IF p_ae_line_rec.created_by = FND_API.g_miss_num THEN
1127       x_complete_rec.created_by := NULL;
1128    END IF;
1129    IF p_ae_line_rec.created_by IS NULL THEN
1130       x_complete_rec.created_by := l_ae_line_rec.created_by;
1131    END IF;
1132 
1133    -- last_update_login
1134    IF p_ae_line_rec.last_update_login = FND_API.g_miss_num THEN
1135       x_complete_rec.last_update_login := NULL;
1136    END IF;
1137    IF p_ae_line_rec.last_update_login IS NULL THEN
1138       x_complete_rec.last_update_login := l_ae_line_rec.last_update_login;
1139    END IF;
1140 
1141    -- request_id
1142    IF p_ae_line_rec.request_id = FND_API.g_miss_num THEN
1143       x_complete_rec.request_id := NULL;
1144    END IF;
1145    IF p_ae_line_rec.request_id IS NULL THEN
1146       x_complete_rec.request_id := l_ae_line_rec.request_id;
1147    END IF;
1148 
1149    -- program_application_id
1150    IF p_ae_line_rec.program_application_id = FND_API.g_miss_num THEN
1151       x_complete_rec.program_application_id := NULL;
1152    END IF;
1153    IF p_ae_line_rec.program_application_id IS NULL THEN
1154       x_complete_rec.program_application_id := l_ae_line_rec.program_application_id;
1155    END IF;
1156 
1157    -- program_update_date
1158    IF p_ae_line_rec.program_update_date = FND_API.g_miss_date THEN
1159       x_complete_rec.program_update_date := NULL;
1160    END IF;
1161    IF p_ae_line_rec.program_update_date IS NULL THEN
1162       x_complete_rec.program_update_date := l_ae_line_rec.program_update_date;
1163    END IF;
1164 
1165    -- program_id
1166    IF p_ae_line_rec.program_id = FND_API.g_miss_num THEN
1167       x_complete_rec.program_id := NULL;
1168    END IF;
1169    IF p_ae_line_rec.program_id IS NULL THEN
1170       x_complete_rec.program_id := l_ae_line_rec.program_id;
1171    END IF;
1172 
1173    -- accounted_cr
1174    IF p_ae_line_rec.accounted_cr = FND_API.g_miss_num THEN
1175       x_complete_rec.accounted_cr := NULL;
1176    END IF;
1177    IF p_ae_line_rec.accounted_cr IS NULL THEN
1178       x_complete_rec.accounted_cr := l_ae_line_rec.accounted_cr;
1179    END IF;
1180 
1181    -- accounted_dr
1182    IF p_ae_line_rec.accounted_dr = FND_API.g_miss_num THEN
1183       x_complete_rec.accounted_dr := NULL;
1184    END IF;
1185    IF p_ae_line_rec.accounted_dr IS NULL THEN
1186       x_complete_rec.accounted_dr := l_ae_line_rec.accounted_dr;
1187    END IF;
1188 
1189    -- accounting_error_code
1190    IF p_ae_line_rec.accounting_error_code = FND_API.g_miss_char THEN
1191       x_complete_rec.accounting_error_code := NULL;
1192    END IF;
1193    IF p_ae_line_rec.accounting_error_code IS NULL THEN
1194       x_complete_rec.accounting_error_code := l_ae_line_rec.accounting_error_code;
1195    END IF;
1196 
1197    -- ae_header_id
1198    IF p_ae_line_rec.ae_header_id = FND_API.g_miss_num THEN
1199       x_complete_rec.ae_header_id := NULL;
1200    END IF;
1201    IF p_ae_line_rec.ae_header_id IS NULL THEN
1202       x_complete_rec.ae_header_id := l_ae_line_rec.ae_header_id;
1203    END IF;
1204 
1205    -- ae_line_number
1206    IF p_ae_line_rec.ae_line_number = FND_API.g_miss_num THEN
1207       x_complete_rec.ae_line_number := NULL;
1208    END IF;
1209    IF p_ae_line_rec.ae_line_number IS NULL THEN
1210       x_complete_rec.ae_line_number := l_ae_line_rec.ae_line_number;
1211    END IF;
1212 
1213    -- ae_line_type_code
1214    IF p_ae_line_rec.ae_line_type_code = FND_API.g_miss_char THEN
1215       x_complete_rec.ae_line_type_code := NULL;
1216    END IF;
1217    IF p_ae_line_rec.ae_line_type_code IS NULL THEN
1218       x_complete_rec.ae_line_type_code := l_ae_line_rec.ae_line_type_code;
1219    END IF;
1220 
1221    -- applied_from_trx_hdr_id
1222    IF p_ae_line_rec.applied_from_trx_hdr_id = FND_API.g_miss_num THEN
1223       x_complete_rec.applied_from_trx_hdr_id := NULL;
1224    END IF;
1225    IF p_ae_line_rec.applied_from_trx_hdr_id IS NULL THEN
1226       x_complete_rec.applied_from_trx_hdr_id := l_ae_line_rec.applied_from_trx_hdr_id;
1227    END IF;
1228 
1229    -- applied_from_trx_hdr_table
1230    IF p_ae_line_rec.applied_from_trx_hdr_table = FND_API.g_miss_char THEN
1231       x_complete_rec.applied_from_trx_hdr_table := NULL;
1232    END IF;
1233    IF p_ae_line_rec.applied_from_trx_hdr_table IS NULL THEN
1234       x_complete_rec.applied_from_trx_hdr_table := l_ae_line_rec.applied_from_trx_hdr_table;
1235    END IF;
1236 
1237    -- applied_to_trx_hdr_id
1238    IF p_ae_line_rec.applied_to_trx_hdr_id = FND_API.g_miss_num THEN
1239       x_complete_rec.applied_to_trx_hdr_id := NULL;
1240    END IF;
1241    IF p_ae_line_rec.applied_to_trx_hdr_id IS NULL THEN
1242       x_complete_rec.applied_to_trx_hdr_id := l_ae_line_rec.applied_to_trx_hdr_id;
1243    END IF;
1244 
1245    -- applied_to_trx_hdr_table
1246    IF p_ae_line_rec.applied_to_trx_hdr_table = FND_API.g_miss_char THEN
1247       x_complete_rec.applied_to_trx_hdr_table := NULL;
1248    END IF;
1252 
1249    IF p_ae_line_rec.applied_to_trx_hdr_table IS NULL THEN
1250       x_complete_rec.applied_to_trx_hdr_table := l_ae_line_rec.applied_to_trx_hdr_table;
1251    END IF;
1253    -- code_combination_id
1254    IF p_ae_line_rec.code_combination_id = FND_API.g_miss_num THEN
1255       x_complete_rec.code_combination_id := NULL;
1256    END IF;
1257    IF p_ae_line_rec.code_combination_id IS NULL THEN
1258       x_complete_rec.code_combination_id := l_ae_line_rec.code_combination_id;
1259    END IF;
1260 
1261    -- currency_code
1262    IF p_ae_line_rec.currency_code = FND_API.g_miss_char THEN
1263       x_complete_rec.currency_code := NULL;
1264    END IF;
1265    IF p_ae_line_rec.currency_code IS NULL THEN
1266       x_complete_rec.currency_code := l_ae_line_rec.currency_code;
1267    END IF;
1268 
1269    -- currency_conversion_date
1270    IF p_ae_line_rec.currency_conversion_date = FND_API.g_miss_date THEN
1271       x_complete_rec.currency_conversion_date := NULL;
1272    END IF;
1273    IF p_ae_line_rec.currency_conversion_date IS NULL THEN
1274       x_complete_rec.currency_conversion_date := l_ae_line_rec.currency_conversion_date;
1275    END IF;
1276 
1277    -- currency_conversion_rate
1278    IF p_ae_line_rec.currency_conversion_rate = FND_API.g_miss_num THEN
1279       x_complete_rec.currency_conversion_rate := NULL;
1280    END IF;
1281    IF p_ae_line_rec.currency_conversion_rate IS NULL THEN
1282       x_complete_rec.currency_conversion_rate := l_ae_line_rec.currency_conversion_rate;
1283    END IF;
1284 
1285    -- currency_conversion_type
1286    IF p_ae_line_rec.currency_conversion_type = FND_API.g_miss_char THEN
1287       x_complete_rec.currency_conversion_type := NULL;
1288    END IF;
1289    IF p_ae_line_rec.currency_conversion_type IS NULL THEN
1290       x_complete_rec.currency_conversion_type := l_ae_line_rec.currency_conversion_type;
1291    END IF;
1292 
1293    -- description
1294    IF p_ae_line_rec.description = FND_API.g_miss_char THEN
1295       x_complete_rec.description := NULL;
1296    END IF;
1297    IF p_ae_line_rec.description IS NULL THEN
1298       x_complete_rec.description := l_ae_line_rec.description;
1299    END IF;
1300 
1301    -- entered_cr
1302    IF p_ae_line_rec.entered_cr = FND_API.g_miss_num THEN
1303       x_complete_rec.entered_cr := NULL;
1304    END IF;
1305    IF p_ae_line_rec.entered_cr IS NULL THEN
1306       x_complete_rec.entered_cr := l_ae_line_rec.entered_cr;
1307    END IF;
1308 
1309    -- entered_dr
1310    IF p_ae_line_rec.entered_dr = FND_API.g_miss_num THEN
1311       x_complete_rec.entered_dr := NULL;
1312    END IF;
1313    IF p_ae_line_rec.entered_dr IS NULL THEN
1314       x_complete_rec.entered_dr := l_ae_line_rec.entered_dr;
1315    END IF;
1316 
1317    -- gl_sl_link_id
1318    IF p_ae_line_rec.gl_sl_link_id = FND_API.g_miss_num THEN
1319       x_complete_rec.gl_sl_link_id := NULL;
1320    END IF;
1321    IF p_ae_line_rec.gl_sl_link_id IS NULL THEN
1322       x_complete_rec.gl_sl_link_id := l_ae_line_rec.gl_sl_link_id;
1323    END IF;
1324 
1325    -- gl_transfer_error_code
1326    IF p_ae_line_rec.gl_transfer_error_code = FND_API.g_miss_char THEN
1327       x_complete_rec.gl_transfer_error_code := NULL;
1328    END IF;
1329    IF p_ae_line_rec.gl_transfer_error_code IS NULL THEN
1330       x_complete_rec.gl_transfer_error_code := l_ae_line_rec.gl_transfer_error_code;
1331    END IF;
1332 
1333    -- org_id
1334    IF p_ae_line_rec.org_id = FND_API.g_miss_num THEN
1335       x_complete_rec.org_id := NULL;
1336    END IF;
1337    IF p_ae_line_rec.org_id IS NULL THEN
1338       x_complete_rec.org_id := l_ae_line_rec.org_id;
1339    END IF;
1340 
1341    -- reference1
1342    IF p_ae_line_rec.reference1 = FND_API.g_miss_char THEN
1343       x_complete_rec.reference1 := NULL;
1344    END IF;
1345    IF p_ae_line_rec.reference1 IS NULL THEN
1346       x_complete_rec.reference1 := l_ae_line_rec.reference1;
1347    END IF;
1348 
1349    -- reference2
1350    IF p_ae_line_rec.reference2 = FND_API.g_miss_char THEN
1351       x_complete_rec.reference2 := NULL;
1352    END IF;
1353    IF p_ae_line_rec.reference2 IS NULL THEN
1354       x_complete_rec.reference2 := l_ae_line_rec.reference2;
1355    END IF;
1356 
1357    -- reference3
1358    IF p_ae_line_rec.reference3 = FND_API.g_miss_char THEN
1359       x_complete_rec.reference3 := NULL;
1360    END IF;
1361    IF p_ae_line_rec.reference3 IS NULL THEN
1362       x_complete_rec.reference3 := l_ae_line_rec.reference3;
1363    END IF;
1364 
1365    -- reference4
1366    IF p_ae_line_rec.reference4 = FND_API.g_miss_char THEN
1367       x_complete_rec.reference4 := NULL;
1368    END IF;
1369    IF p_ae_line_rec.reference4 IS NULL THEN
1370       x_complete_rec.reference4 := l_ae_line_rec.reference4;
1371    END IF;
1372 
1373    -- reference5
1374    IF p_ae_line_rec.reference5 = FND_API.g_miss_char THEN
1375       x_complete_rec.reference5 := NULL;
1376    END IF;
1377    IF p_ae_line_rec.reference5 IS NULL THEN
1378       x_complete_rec.reference5 := l_ae_line_rec.reference5;
1379    END IF;
1380 
1381    -- reference6
1382    IF p_ae_line_rec.reference6 = FND_API.g_miss_char THEN
1383       x_complete_rec.reference6 := NULL;
1384    END IF;
1385    IF p_ae_line_rec.reference6 IS NULL THEN
1386       x_complete_rec.reference6 := l_ae_line_rec.reference6;
1387    END IF;
1388 
1389    -- reference7
1390    IF p_ae_line_rec.reference7 = FND_API.g_miss_char THEN
1391       x_complete_rec.reference7 := NULL;
1392    END IF;
1393    IF p_ae_line_rec.reference7 IS NULL THEN
1394       x_complete_rec.reference7 := l_ae_line_rec.reference7;
1395    END IF;
1396 
1397    -- reference8
1398    IF p_ae_line_rec.reference8 = FND_API.g_miss_char THEN
1402       x_complete_rec.reference8 := l_ae_line_rec.reference8;
1399       x_complete_rec.reference8 := NULL;
1400    END IF;
1401    IF p_ae_line_rec.reference8 IS NULL THEN
1403    END IF;
1404 
1405    -- reference9
1406    IF p_ae_line_rec.reference9 = FND_API.g_miss_char THEN
1407       x_complete_rec.reference9 := NULL;
1408    END IF;
1409    IF p_ae_line_rec.reference9 IS NULL THEN
1410       x_complete_rec.reference9 := l_ae_line_rec.reference9;
1411    END IF;
1412 
1413    -- reference10
1414    IF p_ae_line_rec.reference10 = FND_API.g_miss_char THEN
1415       x_complete_rec.reference10 := NULL;
1416    END IF;
1417    IF p_ae_line_rec.reference10 IS NULL THEN
1418       x_complete_rec.reference10 := l_ae_line_rec.reference10;
1419    END IF;
1420 
1421    -- source_id
1422    IF p_ae_line_rec.source_id = FND_API.g_miss_num THEN
1423       x_complete_rec.source_id := NULL;
1424    END IF;
1425    IF p_ae_line_rec.source_id IS NULL THEN
1426       x_complete_rec.source_id := l_ae_line_rec.source_id;
1427    END IF;
1428 
1429    -- source_table
1430    IF p_ae_line_rec.source_table = FND_API.g_miss_char THEN
1431       x_complete_rec.source_table := NULL;
1432    END IF;
1433    IF p_ae_line_rec.source_table IS NULL THEN
1434       x_complete_rec.source_table := l_ae_line_rec.source_table;
1435    END IF;
1436 
1437    -- stat_amount
1438    IF p_ae_line_rec.stat_amount = FND_API.g_miss_num THEN
1439       x_complete_rec.stat_amount := NULL;
1440    END IF;
1441    IF p_ae_line_rec.stat_amount IS NULL THEN
1442       x_complete_rec.stat_amount := l_ae_line_rec.stat_amount;
1443    END IF;
1444 
1445    -- subledger_doc_sequence_id
1446    IF p_ae_line_rec.subledger_doc_sequence_id = FND_API.g_miss_num THEN
1447       x_complete_rec.subledger_doc_sequence_id := NULL;
1448    END IF;
1449    IF p_ae_line_rec.subledger_doc_sequence_id IS NULL THEN
1450       x_complete_rec.subledger_doc_sequence_id := l_ae_line_rec.subledger_doc_sequence_id;
1451    END IF;
1452 
1453    -- subledger_doc_sequence_value
1454    IF p_ae_line_rec.subledger_doc_sequence_value = FND_API.g_miss_num THEN
1455       x_complete_rec.subledger_doc_sequence_value := NULL;
1456    END IF;
1457    IF p_ae_line_rec.subledger_doc_sequence_value IS NULL THEN
1458       x_complete_rec.subledger_doc_sequence_value := l_ae_line_rec.subledger_doc_sequence_value;
1459    END IF;
1460 
1461    -- taxable_accounted_cr
1462    IF p_ae_line_rec.taxable_accounted_cr = FND_API.g_miss_num THEN
1463       x_complete_rec.taxable_accounted_cr := NULL;
1464    END IF;
1465    IF p_ae_line_rec.taxable_accounted_cr IS NULL THEN
1466       x_complete_rec.taxable_accounted_cr := l_ae_line_rec.taxable_accounted_cr;
1467    END IF;
1468 
1469    -- taxable_accounted_dr
1470    IF p_ae_line_rec.taxable_accounted_dr = FND_API.g_miss_num THEN
1471       x_complete_rec.taxable_accounted_dr := NULL;
1472    END IF;
1473    IF p_ae_line_rec.taxable_accounted_dr IS NULL THEN
1474       x_complete_rec.taxable_accounted_dr := l_ae_line_rec.taxable_accounted_dr;
1475    END IF;
1476 
1477    -- taxable_entered_cr
1478    IF p_ae_line_rec.taxable_entered_cr = FND_API.g_miss_num THEN
1479       x_complete_rec.taxable_entered_cr := NULL;
1480    END IF;
1481    IF p_ae_line_rec.taxable_entered_cr IS NULL THEN
1482       x_complete_rec.taxable_entered_cr := l_ae_line_rec.taxable_entered_cr;
1483    END IF;
1484 
1485    -- taxable_entered_dr
1486    IF p_ae_line_rec.taxable_entered_dr = FND_API.g_miss_num THEN
1487       x_complete_rec.taxable_entered_dr := NULL;
1488    END IF;
1489    IF p_ae_line_rec.taxable_entered_dr IS NULL THEN
1490       x_complete_rec.taxable_entered_dr := l_ae_line_rec.taxable_entered_dr;
1491    END IF;
1492 
1493    -- tax_code_id
1494    IF p_ae_line_rec.tax_code_id = FND_API.g_miss_num THEN
1495       x_complete_rec.tax_code_id := NULL;
1496    END IF;
1497    IF p_ae_line_rec.tax_code_id IS NULL THEN
1498       x_complete_rec.tax_code_id := l_ae_line_rec.tax_code_id;
1499    END IF;
1500 
1501    -- tax_link_id
1502    IF p_ae_line_rec.tax_link_id = FND_API.g_miss_num THEN
1503       x_complete_rec.tax_link_id := NULL;
1504    END IF;
1505    IF p_ae_line_rec.tax_link_id IS NULL THEN
1506       x_complete_rec.tax_link_id := l_ae_line_rec.tax_link_id;
1507    END IF;
1508 
1509    -- third_party_id
1510    IF p_ae_line_rec.third_party_id = FND_API.g_miss_num THEN
1511       x_complete_rec.third_party_id := NULL;
1512    END IF;
1513    IF p_ae_line_rec.third_party_id IS NULL THEN
1514       x_complete_rec.third_party_id := l_ae_line_rec.third_party_id;
1515    END IF;
1516 
1517    -- third_party_sub_id
1518    IF p_ae_line_rec.third_party_sub_id = FND_API.g_miss_num THEN
1519       x_complete_rec.third_party_sub_id := NULL;
1520    END IF;
1521    IF p_ae_line_rec.third_party_sub_id IS NULL THEN
1522       x_complete_rec.third_party_sub_id := l_ae_line_rec.third_party_sub_id;
1523    END IF;
1524 
1525    -- third_party_type
1526    IF p_ae_line_rec.third_party_type = FND_API.g_miss_char THEN
1527       x_complete_rec.third_party_type := NULL;
1528    END IF;
1529    IF p_ae_line_rec.third_party_type IS NULL THEN
1530       x_complete_rec.third_party_type := l_ae_line_rec.third_party_type;
1531    END IF;
1532 
1533    -- ussgl_transaction_code
1534    IF p_ae_line_rec.ussgl_transaction_code = FND_API.g_miss_char THEN
1535       x_complete_rec.ussgl_transaction_code := NULL;
1536    END IF;
1537    IF p_ae_line_rec.ussgl_transaction_code IS NULL THEN
1538       x_complete_rec.ussgl_transaction_code := l_ae_line_rec.ussgl_transaction_code;
1539    END IF;
1540 
1541    -- attribute_category
1542    IF p_ae_line_rec.attribute_category = FND_API.g_miss_char THEN
1543       x_complete_rec.attribute_category := NULL;
1544    END IF;
1548 
1545    IF p_ae_line_rec.attribute_category IS NULL THEN
1546       x_complete_rec.attribute_category := l_ae_line_rec.attribute_category;
1547    END IF;
1549    -- attribute1
1550    IF p_ae_line_rec.attribute1 = FND_API.g_miss_char THEN
1551       x_complete_rec.attribute1 := NULL;
1552    END IF;
1553    IF p_ae_line_rec.attribute1 IS NULL THEN
1554       x_complete_rec.attribute1 := l_ae_line_rec.attribute1;
1555    END IF;
1556 
1557    -- attribute2
1558    IF p_ae_line_rec.attribute2 = FND_API.g_miss_char THEN
1559       x_complete_rec.attribute2 := NULL;
1560    END IF;
1561    IF p_ae_line_rec.attribute2 IS NULL THEN
1562       x_complete_rec.attribute2 := l_ae_line_rec.attribute2;
1563    END IF;
1564 
1565    -- attribute3
1566    IF p_ae_line_rec.attribute3 = FND_API.g_miss_char THEN
1567       x_complete_rec.attribute3 := NULL;
1568    END IF;
1569    IF p_ae_line_rec.attribute3 IS NULL THEN
1570       x_complete_rec.attribute3 := l_ae_line_rec.attribute3;
1571    END IF;
1572 
1573    -- attribute4
1574    IF p_ae_line_rec.attribute4 = FND_API.g_miss_char THEN
1575       x_complete_rec.attribute4 := NULL;
1576    END IF;
1577    IF p_ae_line_rec.attribute4 IS NULL THEN
1578       x_complete_rec.attribute4 := l_ae_line_rec.attribute4;
1579    END IF;
1580 
1581    -- attribute5
1582    IF p_ae_line_rec.attribute5 = FND_API.g_miss_char THEN
1583       x_complete_rec.attribute5 := NULL;
1584    END IF;
1585    IF p_ae_line_rec.attribute5 IS NULL THEN
1586       x_complete_rec.attribute5 := l_ae_line_rec.attribute5;
1587    END IF;
1588 
1589    -- attribute6
1590    IF p_ae_line_rec.attribute6 = FND_API.g_miss_char THEN
1591       x_complete_rec.attribute6 := NULL;
1592    END IF;
1593    IF p_ae_line_rec.attribute6 IS NULL THEN
1594       x_complete_rec.attribute6 := l_ae_line_rec.attribute6;
1595    END IF;
1596 
1597    -- attribute7
1598    IF p_ae_line_rec.attribute7 = FND_API.g_miss_char THEN
1599       x_complete_rec.attribute7 := NULL;
1600    END IF;
1601    IF p_ae_line_rec.attribute7 IS NULL THEN
1602       x_complete_rec.attribute7 := l_ae_line_rec.attribute7;
1603    END IF;
1604 
1605    -- attribute8
1606    IF p_ae_line_rec.attribute8 = FND_API.g_miss_char THEN
1607       x_complete_rec.attribute8 := NULL;
1608    END IF;
1609    IF p_ae_line_rec.attribute8 IS NULL THEN
1610       x_complete_rec.attribute8 := l_ae_line_rec.attribute8;
1611    END IF;
1612 
1613    -- attribute9
1614    IF p_ae_line_rec.attribute9 = FND_API.g_miss_char THEN
1615       x_complete_rec.attribute9 := NULL;
1616    END IF;
1617    IF p_ae_line_rec.attribute9 IS NULL THEN
1618       x_complete_rec.attribute9 := l_ae_line_rec.attribute9;
1619    END IF;
1620 
1621    -- attribute10
1622    IF p_ae_line_rec.attribute10 = FND_API.g_miss_char THEN
1623       x_complete_rec.attribute10 := NULL;
1624    END IF;
1625    IF p_ae_line_rec.attribute10 IS NULL THEN
1626       x_complete_rec.attribute10 := l_ae_line_rec.attribute10;
1627    END IF;
1628 
1629    -- attribute11
1630    IF p_ae_line_rec.attribute11 = FND_API.g_miss_char THEN
1631       x_complete_rec.attribute11 := NULL;
1632    END IF;
1633    IF p_ae_line_rec.attribute11 IS NULL THEN
1634       x_complete_rec.attribute11 := l_ae_line_rec.attribute11;
1635    END IF;
1636 
1637    -- attribute12
1638    IF p_ae_line_rec.attribute12 = FND_API.g_miss_char THEN
1639       x_complete_rec.attribute12 := NULL;
1640    END IF;
1641    IF p_ae_line_rec.attribute12 IS NULL THEN
1642       x_complete_rec.attribute12 := l_ae_line_rec.attribute12;
1643    END IF;
1644 
1645    -- attribute13
1646    IF p_ae_line_rec.attribute13 = FND_API.g_miss_char THEN
1647       x_complete_rec.attribute13 := NULL;
1648    END IF;
1649    IF p_ae_line_rec.attribute13 IS NULL THEN
1650       x_complete_rec.attribute13 := l_ae_line_rec.attribute13;
1651    END IF;
1652 
1653    -- attribute14
1654    IF p_ae_line_rec.attribute14 = FND_API.g_miss_char THEN
1655       x_complete_rec.attribute14 := NULL;
1656    END IF;
1657    IF p_ae_line_rec.attribute14 IS NULL THEN
1658       x_complete_rec.attribute14 := l_ae_line_rec.attribute14;
1659    END IF;
1660 
1661    -- attribute15
1662    IF p_ae_line_rec.attribute15 = FND_API.g_miss_char THEN
1663       x_complete_rec.attribute15 := NULL;
1664    END IF;
1665    IF p_ae_line_rec.attribute15 IS NULL THEN
1666       x_complete_rec.attribute15 := l_ae_line_rec.attribute15;
1667    END IF;
1668 
1669    -- Note: Developers need to modify the procedure
1670    -- to handle any business specific requirements.
1671 END Complete_ae_line_Rec;
1672 PROCEDURE Validate_ae_line(
1673     p_api_version_number         IN   NUMBER,
1674     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1675     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1676     p_ae_line_rec               IN   ae_line_rec_type,
1677     x_return_status              OUT  NOCOPY VARCHAR2,
1678     x_msg_count                  OUT  NOCOPY NUMBER,
1679     x_msg_data                   OUT  NOCOPY VARCHAR2
1680     )
1681  IS
1682 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Ae_Line';
1683 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1684 l_object_version_number     NUMBER;
1685 l_ae_line_rec  OZF_Ae_Line_PVT.ae_line_rec_type;
1686 
1687  BEGIN
1688       -- Standard Start of API savepoint
1689       SAVEPOINT VALIDATE_Ae_Line_;
1690 
1691       -- Standard call to check for call compatibility.
1692       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1693                                            p_api_version_number,
1694                                            l_api_name,
1695                                            G_PKG_NAME)
1699 
1696       THEN
1697           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1698       END IF;
1700       -- Initialize message list if p_init_msg_list is set to TRUE.
1701       IF FND_API.to_Boolean( p_init_msg_list )
1702       THEN
1703          FND_MSG_PUB.initialize;
1704       END IF;
1705       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1706               Check_ae_line_Items(
1707                  p_ae_line_rec        => p_ae_line_rec,
1708                  p_validation_mode   => JTF_PLSQL_API.g_update,
1709                  x_return_status     => x_return_status
1710               );
1711 
1712               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1713                   RAISE FND_API.G_EXC_ERROR;
1714               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1715                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1716               END IF;
1717       END IF;
1718 
1719       Complete_ae_line_Rec(
1720          p_ae_line_rec        => p_ae_line_rec,
1721          x_complete_rec        => l_ae_line_rec
1722       );
1723 
1724       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1725          Validate_ae_line_Rec(
1726            p_api_version_number     => 1.0,
1727            p_init_msg_list          => FND_API.G_FALSE,
1728            x_return_status          => x_return_status,
1729            x_msg_count              => x_msg_count,
1730            x_msg_data               => x_msg_data,
1731            p_ae_line_rec           =>    l_ae_line_rec);
1732 
1733               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1734                  RAISE FND_API.G_EXC_ERROR;
1735               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1736                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1737               END IF;
1738       END IF;
1739 
1740 
1741       -- Debug Message
1742       IF G_DEBUG THEN
1743         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1744       END IF;
1745 
1746 
1747       -- Initialize API return status to SUCCESS
1748       x_return_status := FND_API.G_RET_STS_SUCCESS;
1749 
1750 
1751       -- Debug Message
1752       IF G_DEBUG THEN
1753         OZF_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1754       END IF;
1755 
1756       -- Standard call to get message count and if count is 1, get message info.
1757       FND_MSG_PUB.Count_And_Get
1758         (p_count          =>   x_msg_count,
1759          p_data           =>   x_msg_data
1760       );
1761 EXCEPTION
1762 
1763    WHEN OZF_Utility_PVT.resource_locked THEN
1764      x_return_status := FND_API.g_ret_sts_error;
1765  OZF_Utility_PVT.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1766 
1767    WHEN FND_API.G_EXC_ERROR THEN
1768      ROLLBACK TO VALIDATE_Ae_Line_;
1769      x_return_status := FND_API.G_RET_STS_ERROR;
1770      -- Standard call to get message count and if count=1, get the message
1771      FND_MSG_PUB.Count_And_Get (
1772             p_encoded => FND_API.G_FALSE,
1773             p_count   => x_msg_count,
1774             p_data    => x_msg_data
1775      );
1776 
1777    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1778      ROLLBACK TO VALIDATE_Ae_Line_;
1779      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1780      -- Standard call to get message count and if count=1, get the message
1781      FND_MSG_PUB.Count_And_Get (
1782             p_encoded => FND_API.G_FALSE,
1783             p_count => x_msg_count,
1784             p_data  => x_msg_data
1785      );
1786 
1787    WHEN OTHERS THEN
1788      ROLLBACK TO VALIDATE_Ae_Line_;
1789      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1790      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1791      THEN
1792         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1793      END IF;
1794      -- Standard call to get message count and if count=1, get the message
1795      FND_MSG_PUB.Count_And_Get (
1796             p_encoded => FND_API.G_FALSE,
1797             p_count => x_msg_count,
1798             p_data  => x_msg_data
1799      );
1800 End Validate_Ae_Line;
1801 
1802 
1803 PROCEDURE Validate_ae_line_rec(
1804     p_api_version_number         IN   NUMBER,
1805     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1806     x_return_status              OUT  NOCOPY VARCHAR2,
1807     x_msg_count                  OUT  NOCOPY NUMBER,
1808     x_msg_data                   OUT  NOCOPY VARCHAR2,
1809     p_ae_line_rec               IN    ae_line_rec_type
1810     )
1811 IS
1812 BEGIN
1813       -- Initialize message list if p_init_msg_list is set to TRUE.
1814       IF FND_API.to_Boolean( p_init_msg_list )
1815       THEN
1816          FND_MSG_PUB.initialize;
1817       END IF;
1818 
1819       -- Initialize API return status to SUCCESS
1820       x_return_status := FND_API.G_RET_STS_SUCCESS;
1821 
1822       -- Hint: Validate data
1823       -- If data not valid
1824       -- THEN
1825       -- x_return_status := FND_API.G_RET_STS_ERROR;
1826 
1827       -- Debug Message
1828       IF G_DEBUG THEN
1829         OZF_UTILITY_PVT.debug_message('Private API: Validate_ae_line_rec');
1830       END IF;
1831       -- Standard call to get message count and if count is 1, get message info.
1832       FND_MSG_PUB.Count_And_Get
1833         (p_count          =>   x_msg_count,
1834          p_data           =>   x_msg_data
1835       );
1836 END Validate_ae_line_Rec;
1837 
1838 END OZF_Ae_Line_PVT;