DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSP_REQUIREMENT_LINES_PVT

Source


1 PACKAGE BODY CSP_Requirement_Lines_PVT as
2 /* $Header: cspvrqlb.pls 120.1 2010/12/03 23:44:08 hhaugeru ship $ */
3 -- Start of Comments
4 -- Package name     : CSP_Requirement_Lines_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_Requirement_Lines_PVT';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cspvrqlb.pls';
12 
13 
14 -- Hint: Primary key needs to be returned.
15 PROCEDURE Create_requirement_lines(
16     P_Api_Version_Number         IN   NUMBER,
17     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
18     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
19     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
20     P_Requirement_Line_Tbl       IN   Requirement_Line_Tbl_Type  := G_MISS_Requirement_Line_Tbl,
21     x_Requirement_Line_tbl       OUT NOCOPY Requirement_Line_Tbl_Type,
22     X_Return_Status              OUT NOCOPY  VARCHAR2,
23     X_Msg_Count                  OUT NOCOPY  NUMBER,
24     X_Msg_Data                   OUT NOCOPY  VARCHAR2
25     )
26 
27  IS
28 l_api_name                  CONSTANT VARCHAR2(30) := 'Create_requirement_lines';
29 l_api_version_number        CONSTANT NUMBER   := 1.0;
30 l_return_status_full        VARCHAR2(1);
31 l_access_flag               VARCHAR2(1);
32 
33 l_requirement_line_Rec      Requirement_Line_Rec_Type;
34 l_requirement_line_id       NUMBER;
35 BEGIN
36       -- Standard Start of API savepoint
37       SAVEPOINT CREATE_Requirement_Lines_PUB;
38 
39       -- Standard call to check for call compatibility.
40       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
41                          	               p_api_version_number,
42                                            l_api_name,
43                                            G_PKG_NAME)
44       THEN
45           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
46       END IF;
47 
48 
49       -- Initialize message list if p_init_msg_list is set to TRUE.
50       IF FND_API.to_Boolean( p_init_msg_list )
51       THEN
52           FND_MSG_PUB.initialize;
53       END IF;
54 
55 
56       -- Debug Message
57     -- JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
58 
59       -- Initialize API return status to SUCCESS
60       x_return_status := FND_API.G_RET_STS_SUCCESS;
61 
62       --
63       -- API body
64       --
65       -- ******************************************************************
66       -- Validate Environment
67       -- ******************************************************************
68 /*      IF FND_GLOBAL.User_Id IS NULL
69       THEN
70           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
71           THEN
72               FND_MESSAGE.Set_Name('CSP', 'UT_CANNOT_GET_PROFILE_VALUE');
73               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
74               FND_MSG_PUB.ADD;
75           END IF;
76           RAISE FND_API.G_EXC_ERROR;
77       END IF;
78 
79 
80       IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
81       THEN
82           AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
83               p_api_version_number => 2.0
84              ,p_init_msg_list      => p_init_msg_list
85              ,p_salesforce_id => NULL
86              ,p_admin_group_id => p_admin_group_id
87              ,x_return_status => x_return_status
88              ,x_msg_count => x_msg_count
89              ,x_msg_data => x_msg_data
90              ,x_sales_member_rec => l_identity_sales_member_rec);
91 
92 
93           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
94               RAISE FND_API.G_EXC_ERROR;
95           END IF;
96 
97       END IF;
98  */
99       -- Debug Message
100       --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling create table handler');
101 
102       -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Insert_Row)
103       FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
104 
105         l_requirement_line_rec := P_Requirement_Line_Tbl(I);
106 
107         CSP_REQUIREMENT_LINES_PKG.Insert_Row(
108           px_REQUIREMENT_LINE_ID  => l_requirement_line_rec.requirement_line_id,
109           p_CREATED_BY  => FND_GLOBAL.USER_ID,
110           p_CREATION_DATE  => SYSDATE,
111           p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
112           p_LAST_UPDATE_DATE  => SYSDATE,
113           p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID,
114           p_REQUIREMENT_HEADER_ID  => l_Requirement_Line_rec.REQUIREMENT_HEADER_ID,
115           p_INVENTORY_ITEM_ID  => l_Requirement_Line_rec.INVENTORY_ITEM_ID,
116           p_UOM_CODE  => l_Requirement_Line_rec.UOM_CODE,
117           p_REQUIRED_QUANTITY  => l_Requirement_Line_rec.REQUIRED_QUANTITY,
118           p_SHIP_COMPLETE_FLAG  => l_Requirement_Line_rec.SHIP_COMPLETE_FLAG,
119           p_LIKELIHOOD  => l_Requirement_Line_rec.LIKELIHOOD,
120           p_REVISION  => l_Requirement_Line_rec.REVISION,
121           p_SOURCE_ORGANIZATION_ID  => l_Requirement_Line_rec.SOURCE_ORGANIZATION_ID,
122           p_SOURCE_SUBINVENTORY  => l_Requirement_Line_rec.SOURCE_SUBINVENTORY,
123           p_ORDERED_QUANTITY  => l_Requirement_Line_rec.ORDERED_QUANTITY,
124           p_ORDER_LINE_ID  => l_Requirement_Line_rec.ORDER_LINE_ID,
125           p_RESERVATION_ID  => l_Requirement_Line_rec.RESERVATION_ID,
126           p_ORDER_BY_DATE  => l_Requirement_Line_rec.ORDER_BY_DATE,
127           p_ATTRIBUTE_CATEGORY  => l_Requirement_Line_rec.ATTRIBUTE_CATEGORY,
128           p_ATTRIBUTE1  => l_Requirement_Line_rec.ATTRIBUTE1,
129           p_ATTRIBUTE2  => l_Requirement_Line_rec.ATTRIBUTE2,
130           p_ATTRIBUTE3  => l_Requirement_Line_rec.ATTRIBUTE3,
131           p_ATTRIBUTE4  => l_Requirement_Line_rec.ATTRIBUTE4,
132           p_ATTRIBUTE5  => l_Requirement_Line_rec.ATTRIBUTE5,
133           p_ATTRIBUTE6  => l_Requirement_Line_rec.ATTRIBUTE6,
134           p_ATTRIBUTE7  => l_Requirement_Line_rec.ATTRIBUTE7,
135           p_ATTRIBUTE8  => l_Requirement_Line_rec.ATTRIBUTE8,
136           p_ATTRIBUTE9  => l_Requirement_Line_rec.ATTRIBUTE9,
137           p_ATTRIBUTE10  => l_Requirement_Line_rec.ATTRIBUTE10,
138           p_ATTRIBUTE11  => l_Requirement_Line_rec.ATTRIBUTE11,
139           p_ATTRIBUTE12  => l_Requirement_Line_rec.ATTRIBUTE12,
140           p_ATTRIBUTE13  => l_Requirement_Line_rec.ATTRIBUTE13,
141           p_ATTRIBUTE14  => l_Requirement_Line_rec.ATTRIBUTE14,
142           p_ATTRIBUTE15  => l_Requirement_Line_rec.ATTRIBUTE15,
143           p_ARRIVAL_DATE => l_Requirement_line_rec.ARRIVAL_DATE,
144           p_ITEM_SCRATCHPAD => l_requirement_line_rec.item_scratchpad,
145           p_SHIPPING_METHOD_CODE => l_requirement_line_rec.shipping_method_code,
146           p_LOCAL_RESERVATION_ID => l_requirement_line_rec.LOCAL_RESERVATION_ID,
147           p_SOURCED_FROM => l_requirement_line_rec.SOURCED_FROM
148           );
149 
150       -- Hint: Primary key should be returned.
151          x_REQUIREMENT_Line_Tbl(I) := l_requirement_line_rec;
152 
153          IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
154               RAISE FND_API.G_EXC_ERROR;
155          END IF;
156       END LOOP;
157       --
158       -- End of API body
159       --
160 
161       -- Standard check for p_commit
162    /*   IF FND_API.to_Boolean( p_commit )
163       THEN
164           COMMIT WORK;
165       END IF;
166 */
167 
168       -- Debug Message
169      -- JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
170 
171 
172       -- Standard call to get message count and if count is 1, get message info.
173     /*  FND_MSG_PUB.Count_And_Get
174       (  p_count          =>   x_msg_count,
175          p_data           =>   x_msg_data
176       ); */
177 
178       EXCEPTION
179         WHEN FND_API.G_EXC_ERROR THEN
180           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
181              P_API_NAME => L_API_NAME
182             ,P_PKG_NAME => G_PKG_NAME
183             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
184             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
185             ,X_MSG_COUNT    => X_MSG_COUNT
186             ,X_MSG_DATA     => X_MSG_DATA
187             ,X_RETURN_STATUS => X_RETURN_STATUS);
188         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
189           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
190              P_API_NAME => L_API_NAME
191             ,P_PKG_NAME => G_PKG_NAME
192             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
193             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
194             ,X_MSG_COUNT    => X_MSG_COUNT
195             ,X_MSG_DATA     => X_MSG_DATA
196             ,X_RETURN_STATUS => X_RETURN_STATUS);
197         WHEN OTHERS THEN
198           Rollback to CREATE_Requirement_lines_PUB;
199           FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
200           FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
201           FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
202           FND_MSG_PUB.ADD;
203           fnd_msg_pub.count_and_get
204               ( p_count => x_msg_count
205               , p_data  => x_msg_data);
206           x_return_status := FND_API.G_RET_STS_ERROR;
207 End Create_requirement_lines;
208 
209 
210 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
211 PROCEDURE Update_requirement_lines(
212     P_Api_Version_Number         IN   NUMBER,
213     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
214     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
215     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
216     P_Requirement_Line_Tbl       IN   Requirement_Line_Tbl_Type,
217     X_Return_Status              OUT NOCOPY  VARCHAR2,
218     X_Msg_Count                  OUT NOCOPY  NUMBER,
219     X_Msg_Data                   OUT NOCOPY  VARCHAR2
220     )
221 
222  IS
223 /*
224 Cursor C_Get_requirement_lines(REQUIREMENT_LINE_ID Number) IS
225     Select rowid,
226            REQUIREMENT_LINE_ID,
227            CREATED_BY,
228            CREATION_DATE,
229            LAST_UPDATED_BY,
230            LAST_UPDATE_DATE,
231            LAST_UPDATE_LOGIN,
232            REQUIREMENT_HEADER_ID,
233            INVENTORY_ITEM_ID,
234            UOM_CODE,
235            REQUIRED_QUANTITY,
236            SHIP_COMPLETE_FLAG,
237            LIKELIHOOD,
238            REVISION,
239            SOURCE_ORGANIZATION_ID,
240            SOURCE_SUBINVENTORY,
241            ORDERED_QUANTITY,
242            ORDER_LINE_ID,
243            RESERVATION_ID,
244            ORDER_BY_DATE,
245            ATTRIBUTE_CATEGORY,
246            ATTRIBUTE1,
247            ATTRIBUTE2,
248            ATTRIBUTE3,
249            ATTRIBUTE4,
250            ATTRIBUTE5,
251            ATTRIBUTE6,
252            ATTRIBUTE7,
253            ATTRIBUTE8,
254            ATTRIBUTE9,
255            ATTRIBUTE10,
256            ATTRIBUTE11,
257            ATTRIBUTE12,
258            ATTRIBUTE13,
259            ATTRIBUTE14,
260            ATTRIBUTE15,
261     From  CSP_REQUIREMENT_LINES
262     -- Hint: Developer need to provide Where clause
263     For Update NOWAIT;
264 */
265 l_api_name                CONSTANT VARCHAR2(30) := 'Update_requirement_lines';
266 l_api_version_number      CONSTANT NUMBER   := 1.0;
267 -- Local Variables
268 l_Requirement_Line_rec    CSP_requirement_lines_PVT.Requirement_Line_Rec_Type;
269 --l_tar_Requirement_Line_rec  CSP_requirement_lines_PVT.Requirement_Line_Rec_Type := P_Requirement_Line_Rec;
270 l_rowid  ROWID;
271  BEGIN
272       -- Standard Start of API savepoint
276       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
273       SAVEPOINT UPDATE_Requirement_Lines_PUB;
274 
275       -- Standard call to check for call compatibility.
277                          	             p_api_version_number,
278                                            l_api_name,
279                                            G_PKG_NAME)
280       THEN
281           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
282       END IF;
283 
284 
285       -- Initialize message list if p_init_msg_list is set to TRUE.
286       IF FND_API.to_Boolean( p_init_msg_list )
287       THEN
288           FND_MSG_PUB.initialize;
289       END IF;
290 
291 
292       -- Debug Message
293      --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
294 
295 
296       -- Initialize API return status to SUCCESS
297       x_return_status := FND_API.G_RET_STS_SUCCESS;
298 
299      -- Debug Message
300      -- AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Open Cursor to Select');
301 
302 /*
303       Open C_Get_requirement_lines( l_tar_Requirement_Lines_rec.REQUIREMENT_LINE_ID);
304 
305       Fetch C_Get_requirement_lines into
306                l_rowid,
307                l_ref_Requirement_Lines_rec.REQUIREMENT_LINE_ID,
308                l_ref_Requirement_Lines_rec.CREATED_BY,
309                l_ref_Requirement_Lines_rec.CREATION_DATE,
310                l_ref_Requirement_Lines_rec.LAST_UPDATED_BY,
311                l_ref_Requirement_Lines_rec.LAST_UPDATE_DATE,
312                l_ref_Requirement_Lines_rec.LAST_UPDATE_LOGIN,
313                l_ref_Requirement_Lines_rec.REQUIREMENT_HEADER_ID,
314                l_ref_Requirement_Lines_rec.INVENTORY_ITEM_ID,
315                l_ref_Requirement_Lines_rec.UOM_CODE,
316                l_ref_Requirement_Lines_rec.REQUIRED_QUANTITY,
317                l_ref_Requirement_Lines_rec.SHIP_COMPLETE_FLAG,
318                l_ref_Requirement_Lines_rec.LIKELIHOOD,
319                l_ref_Requirement_Lines_rec.REVISION,
320                l_ref_Requirement_Lines_rec.SOURCE_ORGANIZATION_ID,
321                l_ref_Requirement_Lines_rec.SOURCE_SUBINVENTORY,
322                l_ref_Requirement_Lines_rec.ORDERED_QUANTITY,
323                l_ref_Requirement_Lines_rec.ORDER_LINE_ID,
324                l_ref_Requirement_Lines_rec.RESERVATION_ID,
325                l_ref_Requirement_Lines_rec.ORDER_BY_DATE,
326                l_ref_Requirement_Lines_rec.ATTRIBUTE_CATEGORY,
327                l_ref_Requirement_Lines_rec.ATTRIBUTE1,
328                l_ref_Requirement_Lines_rec.ATTRIBUTE2,
329                l_ref_Requirement_Lines_rec.ATTRIBUTE3,
330                l_ref_Requirement_Lines_rec.ATTRIBUTE4,
331                l_ref_Requirement_Lines_rec.ATTRIBUTE5,
332                l_ref_Requirement_Lines_rec.ATTRIBUTE6,
333                l_ref_Requirement_Lines_rec.ATTRIBUTE7,
334                l_ref_Requirement_Lines_rec.ATTRIBUTE8,
335                l_ref_Requirement_Lines_rec.ATTRIBUTE9,
336                l_ref_Requirement_Lines_rec.ATTRIBUTE10,
337                l_ref_Requirement_Lines_rec.ATTRIBUTE11,
338                l_ref_Requirement_Lines_rec.ATTRIBUTE12,
339                l_ref_Requirement_Lines_rec.ATTRIBUTE13,
340                l_ref_Requirement_Lines_rec.ATTRIBUTE14,
341                l_ref_Requirement_Lines_rec.ATTRIBUTE15,
342 
343        If ( C_Get_requirement_lines%NOTFOUND) Then
344            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
345            THEN
346                FND_MESSAGE.Set_Name('CSP', 'API_MISSING_UPDATE_TARGET');
347                FND_MESSAGE.Set_Token ('INFO', 'requirement_lines', FALSE);
348                FND_MSG_PUB.Add;
349            END IF;
350            Close C_Get_requirement_lines;
351            raise FND_API.G_EXC_ERROR;
352        END IF;
353        -- Debug Message
354        AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
355        Close     C_Get_requirement_lines;
356 
357 
358 
359       If (l_tar_Requirement_Lines_rec.last_update_date is NULL or
360           l_tar_Requirement_Lines_rec.last_update_date = FND_API.G_MISS_Date ) Then
361           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
362           THEN
363               FND_MESSAGE.Set_Name('CSP', 'API_MISSING_ID');
364               FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
365               FND_MSG_PUB.ADD;
366           END IF;
367           raise FND_API.G_EXC_ERROR;
368       End if;
369       -- Check Whether record has been changed by someone else
370       If (l_tar_Requirement_Lines_rec.last_update_date <> l_ref_Requirement_Lines_rec.last_update_date) Then
371           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
372           THEN
373               FND_MESSAGE.Set_Name('CSP', 'API_RECORD_CHANGED');
374               FND_MESSAGE.Set_Token('INFO', 'requirement_lines', FALSE);
375               FND_MSG_PUB.ADD;
376           END IF;
377           raise FND_API.G_EXC_ERROR;
378       End if;
379 
380       -- Debug message
381       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_requirement_lines');
382 
383       -- Invoke validation procedures
384       Validate_requirement_lines(
385           p_init_msg_list    => FND_API.G_FALSE,
386           p_validation_level => p_validation_level,
387           p_validation_mode  => AS_UTILITY_PVT.G_UPDATE,
388           p_requirement_line_rec  =>  p_requirement_line_rec,
389           x_return_status    => x_return_status,
390           x_msg_count        => x_msg_count,
391           x_msg_data         => x_msg_data);
392 
393       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
394           RAISE FND_API.G_EXC_ERROR;
395       END IF;
396 
397 
401 --        AS_ACCESS_PUB.Has_???Access(
398       IF p_check_access_flag = 'Y'
399       THEN
400           -- Please un-comment here and complete it
402 --            p_api_version_number     => 2.0
403 --           ,p_init_msg_list          => p_init_msg_list
404 --           ,p_validation_level       => p_validation_level
405 --           ,p_profile_tbl            => p_profile_tbl
406 --           ,p_admin_flag             => p_admin_flag
407 --           ,p_admin_group_id         => p_admin_group_id
408 --           ,p_person_id              => l_identity_sales_member_rec.employee_person_id
409 --           ,p_customer_id            =>
410 --           ,p_check_access_flag      => 'Y'
411 --           ,p_identity_salesforce_id => p_identity_salesforce_id
412 --           ,p_partner_cont_party_id  => NULL
413 --           ,x_return_status          => x_return_status
414 --           ,x_msg_count              => x_msg_count
415 --           ,x_msg_data               => x_msg_data
416 --           ,x_access_flag            => l_access_flag);
417 
418 --          IF l_access_flag <> 'Y' THEN
419 --              AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR,
420 --                  'API_NO_UPDATE_PRIVILEGE');
421 --          END IF;
422 
423 
424           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
425               RAISE FND_API.G_EXC_ERROR;
426           END IF;
427 
428       END IF;
429       -- Hint: Add corresponding Master-Detail business logic here if necessary.
430 */
431       -- Debug Message
432      --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
433 
434       -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Update_Row)
435       FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
436         l_requirement_line_rec := p_requirement_line_tbl(I);
437 
438         CSP_REQUIREMENT_LINES_PKG.Update_Row(
439           p_REQUIREMENT_LINE_ID  => l_requirement_line_rec.REQUIREMENT_LINE_ID,
440           p_CREATED_BY     => FND_API.G_MISS_NUM,
441           p_CREATION_DATE  => FND_API.G_MISS_DATE,
442           p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
443           p_LAST_UPDATE_DATE  => SYSDATE,
444           p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID,
445           p_REQUIREMENT_HEADER_ID  => l_requirement_line_rec.REQUIREMENT_HEADER_ID,
446           p_INVENTORY_ITEM_ID  => l_requirement_line_rec.INVENTORY_ITEM_ID,
447           p_UOM_CODE  => l_requirement_line_rec.UOM_CODE,
448           p_REQUIRED_QUANTITY  => l_requirement_line_rec.REQUIRED_QUANTITY,
449           p_SHIP_COMPLETE_FLAG  => l_requirement_line_rec.SHIP_COMPLETE_FLAG,
450           p_LIKELIHOOD  => l_requirement_line_rec.LIKELIHOOD,
451           p_REVISION  => l_requirement_line_rec.REVISION,
452           p_SOURCE_ORGANIZATION_ID  => l_requirement_line_rec.SOURCE_ORGANIZATION_ID,
453           p_SOURCE_SUBINVENTORY  => l_requirement_line_rec.SOURCE_SUBINVENTORY,
454           p_ORDERED_QUANTITY  => l_requirement_line_rec.ORDERED_QUANTITY,
455           p_ORDER_LINE_ID  => l_requirement_line_rec.ORDER_LINE_ID,
456           p_RESERVATION_ID  => l_requirement_line_rec.RESERVATION_ID,
457           p_ORDER_BY_DATE  => l_requirement_line_rec.ORDER_BY_DATE,
458           p_ATTRIBUTE_CATEGORY  => l_requirement_line_rec.ATTRIBUTE_CATEGORY,
459           p_ATTRIBUTE1  => l_requirement_line_rec.ATTRIBUTE1,
460           p_ATTRIBUTE2  => l_requirement_line_rec.ATTRIBUTE2,
461           p_ATTRIBUTE3  => l_requirement_line_rec.ATTRIBUTE3,
462           p_ATTRIBUTE4  => l_requirement_line_rec.ATTRIBUTE4,
463           p_ATTRIBUTE5  => l_requirement_line_rec.ATTRIBUTE5,
464           p_ATTRIBUTE6  => l_requirement_line_rec.ATTRIBUTE6,
465           p_ATTRIBUTE7  => l_requirement_line_rec.ATTRIBUTE7,
466           p_ATTRIBUTE8  => l_requirement_line_rec.ATTRIBUTE8,
467           p_ATTRIBUTE9  => l_requirement_line_rec.ATTRIBUTE9,
468           p_ATTRIBUTE10  => l_requirement_line_rec.ATTRIBUTE10,
469           p_ATTRIBUTE11  => l_requirement_line_rec.ATTRIBUTE11,
470           p_ATTRIBUTE12  => l_requirement_line_rec.ATTRIBUTE12,
471           p_ATTRIBUTE13  => l_requirement_line_rec.ATTRIBUTE13,
472           p_ATTRIBUTE14  => l_requirement_line_rec.ATTRIBUTE14,
473           p_ATTRIBUTE15  => l_requirement_line_rec.ATTRIBUTE15,
474           p_ARRIVAL_DATE => l_requirement_line_rec.arrival_date,
475           p_ITEM_SCRATCHPAD => l_requirement_line_rec.item_scratchpad,
476           p_SHIPPING_METHOD_CODE => l_requirement_line_rec.shipping_method_code,
477           p_LOCAL_RESERVATION_ID => l_requirement_line_rec.LOCAL_RESERVATION_ID,
478           p_SOURCED_FROM => l_requirement_line_rec.SOURCED_FROM
479           );
480 
481       END LOOP;
482       --
483       -- End of API body.
484       --
485 
486       -- Standard check for p_commit
487       IF FND_API.to_Boolean( p_commit )
488       THEN
489           COMMIT WORK;
490       END IF;
491 
492 
493       -- Debug Message
494       --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
495 
496 
497       -- Standard call to get message count and if count is 1, get message info.
498     /*  FND_MSG_PUB.Count_And_Get
499       (  p_count          =>   x_msg_count,
500          p_data           =>   x_msg_data
501       );
502 */
503       EXCEPTION
504         WHEN FND_API.G_EXC_ERROR THEN
505           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
506              P_API_NAME => L_API_NAME
507             ,P_PKG_NAME => G_PKG_NAME
508             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
509             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
510             ,X_MSG_COUNT    => X_MSG_COUNT
511             ,X_MSG_DATA     => X_MSG_DATA
512             ,X_RETURN_STATUS => X_RETURN_STATUS);
513         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
514           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
515              P_API_NAME => L_API_NAME
519             ,X_MSG_COUNT    => X_MSG_COUNT
516             ,P_PKG_NAME => G_PKG_NAME
517             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
518             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
520             ,X_MSG_DATA     => X_MSG_DATA
521             ,X_RETURN_STATUS => X_RETURN_STATUS);
522         WHEN OTHERS THEN
523           Rollback to UPDATE_Requirement_Lines_PUB;
524           FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
525           FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
526           FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
527           FND_MSG_PUB.ADD;
528           fnd_msg_pub.count_and_get
529               ( p_count => x_msg_count
530               , p_data  => x_msg_data);
531           x_return_status := FND_API.G_RET_STS_ERROR;
532 End Update_requirement_lines;
533 
534 
535 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
536 --       The Master delete procedure may not be needed depends on different business requirements.
537 PROCEDURE Delete_requirement_lines(
538     P_Api_Version_Number         IN   NUMBER,
539     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
540     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
541     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
542     p_requirement_line_tbl       IN   Requirement_Line_Tbl_Type,
543     X_Return_Status              OUT NOCOPY  VARCHAR2,
544     X_Msg_Count                  OUT NOCOPY  NUMBER,
545     X_Msg_Data                   OUT NOCOPY  VARCHAR2
546     )
547 
548  IS
549  l_api_name                CONSTANT VARCHAR2(30) := 'Delete_requirement_lines';
550  l_api_version_number      CONSTANT NUMBER   := 1.0;
551  l_requirement_line_rec    Requirement_Line_Rec_type;
552  BEGIN
553       -- Standard Start of API savepoint
554       SAVEPOINT DELETE_Requirement_Lines_PUB;
555 
556       -- Standard call to check for call compatibility.
557       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
558                          	               p_api_version_number,
559                                            l_api_name,
560                                            G_PKG_NAME)
561       THEN
562           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
563       END IF;
564 
565 
566       -- Initialize message list if p_init_msg_list is set to TRUE.
567       IF FND_API.to_Boolean( p_init_msg_list )
568       THEN
569           FND_MSG_PUB.initialize;
570       END IF;
571 
572 
573       -- Debug Message
574       --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
575 
576 
577       -- Initialize API return status to SUCCESS
578       x_return_status := FND_API.G_RET_STS_SUCCESS;
579 
580       --
581       -- Api body
582       --
583       -- Debug Message
584       --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
585 
586       -- Invoke table handler(CSP_REQUIREMENT_LINES_PKG.Delete_Row)
587       FOR I IN 1..P_Requirement_Line_Tbl.COUNT LOOP
588         l_requirement_line_rec := p_requirement_Line_Tbl(I);
589 
590         CSP_REQUIREMENT_LINES_PKG.Delete_Row(
591           p_REQUIREMENT_LINE_ID  => l_requirement_line_rec.REQUIREMENT_LINE_ID);
592 
593       END LOOP;
594       --
595       -- End of API body
596       --
597 
598       -- Standard check for p_commit
599       IF FND_API.to_Boolean( p_commit )
600       THEN
601           COMMIT WORK;
602       END IF;
603 
604 
605       -- Debug Message
606       --JTF_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
607 
608 
609       -- Standard call to get message count and if count is 1, get message info.
610       FND_MSG_PUB.Count_And_Get
611       (  p_count          =>   x_msg_count,
612          p_data           =>   x_msg_data
613       );
614 
615       EXCEPTION
616         WHEN FND_API.G_EXC_ERROR THEN
617           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
618              P_API_NAME => L_API_NAME
619             ,P_PKG_NAME => G_PKG_NAME
620             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
621             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
622             ,X_MSG_COUNT    => X_MSG_COUNT
623             ,X_MSG_DATA     => X_MSG_DATA
624             ,X_RETURN_STATUS => X_RETURN_STATUS);
625         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
626           JTF_PLSQL_API.HANDLE_EXCEPTIONS(
627              P_API_NAME => L_API_NAME
628             ,P_PKG_NAME => G_PKG_NAME
629             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
630             ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB
631             ,X_MSG_COUNT    => X_MSG_COUNT
632             ,X_MSG_DATA     => X_MSG_DATA
633             ,X_RETURN_STATUS => X_RETURN_STATUS);
634         WHEN OTHERS THEN
635           Rollback to DELETE_Requirement_Lines_PUB;
636           FND_MESSAGE.SET_NAME('CSP', 'CSP_UNEXPECTED_EXEC_ERRORS');
637           FND_MESSAGE.SET_TOKEN('ROUTINE', l_api_name, TRUE);
638           FND_MESSAGE.SET_TOKEN('SQLERRM', sqlerrm, TRUE);
639           FND_MSG_PUB.ADD;
640           fnd_msg_pub.count_and_get
641               ( p_count => x_msg_count
642               , p_data  => x_msg_data);
643           x_return_status := FND_API.G_RET_STS_ERROR;
644 End Delete_requirement_lines;
645 
646 /*
647 -- This procudure defines the columns for the Dynamic SQL.
648 PROCEDURE Define_Columns(
649     l_requirement_line_rec   IN  CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
650     p_cur_get_Requirement_Lines   IN   NUMBER
651 )
652 IS
653 BEGIN
654       -- Debug Message
658       dbms_sql.define_column(p_cur_get_Requirement_Lines, 1, p_requirement_line_rec.REQUIREMENT_LINE_ID);
655       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Define Columns Begins');
656 
657       -- define all columns for CSP_REQUIREMENT_LINES view
659       dbms_sql.define_column(p_cur_get_Requirement_Lines, 2, p_requirement_line_rec.REQUIREMENT_HEADER_ID);
660       dbms_sql.define_column(p_cur_get_Requirement_Lines, 3, p_requirement_line_rec.INVENTORY_ITEM_ID);
661       dbms_sql.define_column(p_cur_get_Requirement_Lines, 4, p_requirement_line_rec.UOM_CODE, 3);
662       dbms_sql.define_column(p_cur_get_Requirement_Lines, 5, p_requirement_line_rec.REQUIRED_QUANTITY);
663       dbms_sql.define_column(p_cur_get_Requirement_Lines, 6, p_requirement_line_rec.SHIP_COMPLETE_FLAG, 3);
664       dbms_sql.define_column(p_cur_get_Requirement_Lines, 7, p_requirement_line_rec.LIKELIHOOD);
665       dbms_sql.define_column(p_cur_get_Requirement_Lines, 8, p_requirement_line_rec.REVISION, 3);
666       dbms_sql.define_column(p_cur_get_Requirement_Lines, 9, p_requirement_line_rec.SOURCE_ORGANIZATION_ID);
667       dbms_sql.define_column(p_cur_get_Requirement_Lines, 10, p_requirement_line_rec.SOURCE_SUBINVENTORY, 10);
668       dbms_sql.define_column(p_cur_get_Requirement_Lines, 11, p_requirement_line_rec.ORDERED_QUANTITY);
669       dbms_sql.define_column(p_cur_get_Requirement_Lines, 12, p_requirement_line_rec.ORDER_LINE_ID);
670       dbms_sql.define_column(p_cur_get_Requirement_Lines, 13, p_requirement_line_rec.RESERVATION_ID);
671       dbms_sql.define_column(p_cur_get_Requirement_Lines, 14, p_requirement_line_rec.ORDER_BY_DATE);
672       dbms_sql.define_column(p_cur_get_Requirement_Lines, 15, p_requirement_line_rec.ATTRIBUTE_CATEGORY, 30);
673       dbms_sql.define_column(p_cur_get_Requirement_Lines, 16, p_requirement_line_rec.ATTRIBUTE1, 150);
674       dbms_sql.define_column(p_cur_get_Requirement_Lines, 17, p_requirement_line_rec.ATTRIBUTE2, 150);
675       dbms_sql.define_column(p_cur_get_Requirement_Lines, 18, p_requirement_line_rec.ATTRIBUTE3, 150);
676       dbms_sql.define_column(p_cur_get_Requirement_Lines, 19, p_requirement_line_rec.ATTRIBUTE4, 150);
677       dbms_sql.define_column(p_cur_get_Requirement_Lines, 20, p_requirement_line_rec.ATTRIBUTE5, 150);
678       dbms_sql.define_column(p_cur_get_Requirement_Lines, 21, p_requirement_line_rec.ATTRIBUTE6, 150);
679       dbms_sql.define_column(p_cur_get_Requirement_Lines, 22, p_requirement_line_rec.ATTRIBUTE7, 150);
680       dbms_sql.define_column(p_cur_get_Requirement_Lines, 23, p_requirement_line_rec.ATTRIBUTE8, 150);
681       dbms_sql.define_column(p_cur_get_Requirement_Lines, 24, p_requirement_line_rec.ATTRIBUTE9, 150);
682       dbms_sql.define_column(p_cur_get_Requirement_Lines, 25, p_requirement_line_rec.ATTRIBUTE10, 150);
683       dbms_sql.define_column(p_cur_get_Requirement_Lines, 26, p_requirement_line_rec.ATTRIBUTE11, 150);
684       dbms_sql.define_column(p_cur_get_Requirement_Lines, 27, p_requirement_line_rec.ATTRIBUTE12, 150);
685       dbms_sql.define_column(p_cur_get_Requirement_Lines, 28, p_requirement_line_rec.ATTRIBUTE13, 150);
686       dbms_sql.define_column(p_cur_get_Requirement_Lines, 29, p_requirement_line_rec.ATTRIBUTE14, 150);
687       dbms_sql.define_column(p_cur_get_Requirement_Lines, 30, p_requirement_line_rec.ATTRIBUTE15, 150);
688 
689       -- Debug Message
690       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Define Columns Ends');
691 END Define_Columns;
692 
693 -- This procudure gets column values by the Dynamic SQL.
694 PROCEDURE Get_Column_Values(
695     p_cur_get_Requirement_Lines   IN   NUMBER,
696     X_Requirement_Lines_Rec   OUT NOCOPY  CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type
697 )
698 IS
699 BEGIN
700       -- Debug Message
701       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Get Column Values Begins');
702 
703       -- get all column values for CSP_REQUIREMENT_LINES table
704       dbms_sql.column_value(p_cur_get_Requirement_Lines, 1, X_Requirement_Lines_Rec.REQUIREMENT_LINE_ID);
705       dbms_sql.column_value(p_cur_get_Requirement_Lines, 2, X_Requirement_Lines_Rec.REQUIREMENT_HEADER_ID);
706       dbms_sql.column_value(p_cur_get_Requirement_Lines, 3, X_Requirement_Lines_Rec.INVENTORY_ITEM_ID);
707       dbms_sql.column_value(p_cur_get_Requirement_Lines, 4, X_Requirement_Lines_Rec.UOM_CODE);
708       dbms_sql.column_value(p_cur_get_Requirement_Lines, 5, X_Requirement_Lines_Rec.REQUIRED_QUANTITY);
709       dbms_sql.column_value(p_cur_get_Requirement_Lines, 6, X_Requirement_Lines_Rec.SHIP_COMPLETE_FLAG);
710       dbms_sql.column_value(p_cur_get_Requirement_Lines, 7, X_Requirement_Lines_Rec.LIKELIHOOD);
711       dbms_sql.column_value(p_cur_get_Requirement_Lines, 8, X_Requirement_Lines_Rec.REVISION);
712       dbms_sql.column_value(p_cur_get_Requirement_Lines, 9, X_Requirement_Lines_Rec.SOURCE_ORGANIZATION_ID);
713       dbms_sql.column_value(p_cur_get_Requirement_Lines, 10, X_Requirement_Lines_Rec.SOURCE_SUBINVENTORY);
714       dbms_sql.column_value(p_cur_get_Requirement_Lines, 11, X_Requirement_Lines_Rec.ORDERED_QUANTITY);
715       dbms_sql.column_value(p_cur_get_Requirement_Lines, 12, X_Requirement_Lines_Rec.ORDER_LINE_ID);
716       dbms_sql.column_value(p_cur_get_Requirement_Lines, 13, X_Requirement_Lines_Rec.RESERVATION_ID);
717       dbms_sql.column_value(p_cur_get_Requirement_Lines, 14, X_Requirement_Lines_Rec.ORDER_BY_DATE);
718       dbms_sql.column_value(p_cur_get_Requirement_Lines, 15, X_Requirement_Lines_Rec.ATTRIBUTE_CATEGORY);
719       dbms_sql.column_value(p_cur_get_Requirement_Lines, 16, X_Requirement_Lines_Rec.ATTRIBUTE1);
720       dbms_sql.column_value(p_cur_get_Requirement_Lines, 17, X_Requirement_Lines_Rec.ATTRIBUTE2);
721       dbms_sql.column_value(p_cur_get_Requirement_Lines, 18, X_Requirement_Lines_Rec.ATTRIBUTE3);
722       dbms_sql.column_value(p_cur_get_Requirement_Lines, 19, X_Requirement_Lines_Rec.ATTRIBUTE4);
723       dbms_sql.column_value(p_cur_get_Requirement_Lines, 20, X_Requirement_Lines_Rec.ATTRIBUTE5);
724       dbms_sql.column_value(p_cur_get_Requirement_Lines, 21, X_Requirement_Lines_Rec.ATTRIBUTE6);
725       dbms_sql.column_value(p_cur_get_Requirement_Lines, 22, X_Requirement_Lines_Rec.ATTRIBUTE7);
726       dbms_sql.column_value(p_cur_get_Requirement_Lines, 23, X_Requirement_Lines_Rec.ATTRIBUTE8);
730       dbms_sql.column_value(p_cur_get_Requirement_Lines, 27, X_Requirement_Lines_Rec.ATTRIBUTE12);
727       dbms_sql.column_value(p_cur_get_Requirement_Lines, 24, X_Requirement_Lines_Rec.ATTRIBUTE9);
728       dbms_sql.column_value(p_cur_get_Requirement_Lines, 25, X_Requirement_Lines_Rec.ATTRIBUTE10);
729       dbms_sql.column_value(p_cur_get_Requirement_Lines, 26, X_Requirement_Lines_Rec.ATTRIBUTE11);
731       dbms_sql.column_value(p_cur_get_Requirement_Lines, 28, X_Requirement_Lines_Rec.ATTRIBUTE13);
732       dbms_sql.column_value(p_cur_get_Requirement_Lines, 29, X_Requirement_Lines_Rec.ATTRIBUTE14);
733       dbms_sql.column_value(p_cur_get_Requirement_Lines, 30, X_Requirement_Lines_Rec.ATTRIBUTE15);
734 
735       -- Debug Message
736       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Get Column Values Ends');
737 END Get_Column_Values;
738 
739 PROCEDURE Gen_Requirement_Lines_order_cl(
740     p_order_by_rec   IN   CSP_Requirement_Lines_PUB.Requirement_Lines_sort_rec_type,
741     x_order_by_cl    OUT NOCOPY  VARCHAR2,
742     x_return_status  OUT NOCOPY  VARCHAR2,
743     x_msg_count      OUT NOCOPY  NUMBER,
744     x_msg_data       OUT NOCOPY  VARCHAR2
745 )
746 IS
747 l_order_by_cl        VARCHAR2(1000)   := NULL;
748 l_util_order_by_tbl  AS_UTILITY_PVT.Util_order_by_tbl_type;
749 BEGIN
750       -- Debug Message
751       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Order by Begins');
752 
753       -- Hint: Developer should add more statements according to CSP_sort_rec_type
754       -- Ex:
755       -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
756       -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
757 
758       -- Debug Message
759       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Invoke AS_UTILITY_PVT.Translate_OrderBy');
760 
761       AS_UTILITY_PVT.Translate_OrderBy(
762           p_api_version_number   =>   1.0
763          ,p_init_msg_list        =>   FND_API.G_FALSE
764          ,p_validation_level     =>   FND_API.G_VALID_LEVEL_FULL
765          ,p_order_by_tbl         =>   l_util_order_by_tbl
766          ,x_order_by_clause      =>   l_order_by_cl
767          ,x_return_status        =>   x_return_status
768          ,x_msg_count            =>   x_msg_count
769          ,x_msg_data             =>   x_msg_data);
770 
771       IF(l_order_by_cl IS NOT NULL) THEN
772           x_order_by_cl := 'order by' || l_order_by_cl;
773       ELSE
774           x_order_by_cl := NULL;
775       END IF;
776 
777       -- Debug Message
778       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Order by Ends');
779 END Gen_Requirement_Lines_order_cl;
780 
781 -- This procedure bind the variables for the Dynamic SQL
782 PROCEDURE Bind(
783     p_requirement_line_rec   IN   CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
784     -- Hint: Add more binding variables here
785     p_cur_get_Requirement_Lines   IN   NUMBER
786 )
787 IS
788 BEGIN
789       -- Bind variables
790       -- Only those that are not NULL
791       -- Debug Message
792       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Bind Variables Begins');
793 
794       -- The following example applies to all columns,
795       -- developers can copy and paste them.
796       IF( (p_requirement_line_rec.REQUIREMENT_LINE_ID IS NOT NULL) AND (p_requirement_line_rec.REQUIREMENT_LINE_ID <> FND_API.G_MISS_NUM) )
797       THEN
798           DBMS_SQL.BIND_VARIABLE(p_cur_get_Requirement_Lines, ':p_REQUIREMENT_LINE_ID', p_requirement_line_rec.REQUIREMENT_LINE_ID);
799       END IF;
800 
801       -- Debug Message
802       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Bind Variables Ends');
803 END Bind;
804 
805 PROCEDURE Gen_Select(
806     x_select_cl   OUT NOCOPY   VARCHAR2
807 )
808 IS
809 BEGIN
810       -- Debug Message
811       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Select Begins');
812 
813       x_select_cl := 'Select ' ||
814                 'CSP_REQUIREMENT_LINES.REQUIREMENT_LINE_ID,' ||
815                 'CSP_REQUIREMENT_LINES.CREATED_BY,' ||
816                 'CSP_REQUIREMENT_LINES.CREATION_DATE,' ||
817                 'CSP_REQUIREMENT_LINES.LAST_UPDATED_BY,' ||
818                 'CSP_REQUIREMENT_LINES.LAST_UPDATE_DATE,' ||
819                 'CSP_REQUIREMENT_LINES.LAST_UPDATE_LOGIN,' ||
820                 'CSP_REQUIREMENT_LINES.REQUIREMENT_HEADER_ID,' ||
821                 'CSP_REQUIREMENT_LINES.INVENTORY_ITEM_ID,' ||
822                 'CSP_REQUIREMENT_LINES.UOM_CODE,' ||
823                 'CSP_REQUIREMENT_LINES.REQUIRED_QUANTITY,' ||
824                 'CSP_REQUIREMENT_LINES.SHIP_COMPLETE_FLAG,' ||
825                 'CSP_REQUIREMENT_LINES.LIKELIHOOD,' ||
826                 'CSP_REQUIREMENT_LINES.REVISION,' ||
827                 'CSP_REQUIREMENT_LINES.SOURCE_ORGANIZATION_ID,' ||
828                 'CSP_REQUIREMENT_LINES.SOURCE_SUBINVENTORY,' ||
829                 'CSP_REQUIREMENT_LINES.ORDERED_QUANTITY,' ||
830                 'CSP_REQUIREMENT_LINES.ORDER_LINE_ID,' ||
831                 'CSP_REQUIREMENT_LINES.RESERVATION_ID,' ||
832                 'CSP_REQUIREMENT_LINES.ORDER_BY_DATE,' ||
833                 'CSP_REQUIREMENT_LINES.ATTRIBUTE_CATEGORY,' ||
834                 'CSP_REQUIREMENT_LINES.ATTRIBUTE1,' ||
835                 'CSP_REQUIREMENT_LINES.ATTRIBUTE2,' ||
836                 'CSP_REQUIREMENT_LINES.ATTRIBUTE3,' ||
837                 'CSP_REQUIREMENT_LINES.ATTRIBUTE4,' ||
838                 'CSP_REQUIREMENT_LINES.ATTRIBUTE5,' ||
839                 'CSP_REQUIREMENT_LINES.ATTRIBUTE6,' ||
840                 'CSP_REQUIREMENT_LINES.ATTRIBUTE7,' ||
841                 'CSP_REQUIREMENT_LINES.ATTRIBUTE8,' ||
842                 'CSP_REQUIREMENT_LINES.ATTRIBUTE9,' ||
846                 'CSP_REQUIREMENT_LINES.ATTRIBUTE13,' ||
843                 'CSP_REQUIREMENT_LINES.ATTRIBUTE10,' ||
844                 'CSP_REQUIREMENT_LINES.ATTRIBUTE11,' ||
845                 'CSP_REQUIREMENT_LINES.ATTRIBUTE12,' ||
847                 'CSP_REQUIREMENT_LINES.ATTRIBUTE14,' ||
848                 'CSP_REQUIREMENT_LINES.ATTRIBUTE15,' ||
849                 'from CSP_REQUIREMENT_LINES';
850       -- Debug Message
851       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Select Ends');
852 
853 END Gen_Select;
854 
855 PROCEDURE Gen_Requirement_Lines_Where(
856     p_requirement_line_rec     IN   CSP_Requirement_Lines_PUB.Requirement_Lines_Rec_Type,
857     x_Requirement_Lines_where   OUT NOCOPY   VARCHAR2
858 )
859 IS
860 -- cursors to check if wildcard values '%' and '_' have been passed
861 -- as item values
862 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
863     SELECT INSTR(p_rec_item, '%', 1, 1)
864     FROM DUAL;
865 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
866     SELECT INSTR(p_rec_item, '_', 1, 1)
867     FROM DUAL;
868 
869 -- return values from cursors
870 str_csr1   NUMBER;
871 str_csr2   NUMBER;
872 l_operator VARCHAR2(10);
873 BEGIN
874       -- Debug Message
875       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Where Begins');
876 
877       -- There are three examples for each kind of datatype:
878       -- NUMBER, DATE, VARCHAR2.
879       -- Developer can copy and paste the following codes for your own record.
880 
881       -- example for NUMBER datatype
882       IF( (p_requirement_line_rec.REQUIREMENT_LINE_ID IS NOT NULL) AND (p_requirement_line_rec.REQUIREMENT_LINE_ID <> FND_API.G_MISS_NUM) )
883       THEN
884           IF(x_Requirement_Lines_where IS NULL) THEN
885               x_Requirement_Lines_where := 'Where';
886           ELSE
887               x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
888           END IF;
889           x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.REQUIREMENT_LINE_ID = :p_REQUIREMENT_LINE_ID';
890       END IF;
891 
892       -- example for DATE datatype
893       IF( (p_requirement_line_rec.CREATION_DATE IS NOT NULL) AND (p_requirement_line_rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
894       THEN
895           -- check if item value contains '%' wildcard
896           OPEN c_chk_str1(p_requirement_line_rec.CREATION_DATE);
897           FETCH c_chk_str1 INTO str_csr1;
898           CLOSE c_chk_str1;
899 
900           IF(str_csr1 <> 0) THEN
901               l_operator := ' LIKE ';
902           ELSE
903               l_operator := ' = ';
904           END IF;
905 
906           -- check if item value contains '_' wildcard
907           OPEN c_chk_str2(p_requirement_line_rec.CREATION_DATE);
908           FETCH c_chk_str2 INTO str_csr2;
909           CLOSE c_chk_str2;
910 
911           IF(str_csr2 <> 0) THEN
912               l_operator := ' LIKE ';
913           ELSE
914               l_operator := ' = ';
915           END IF;
916 
917           IF(x_Requirement_Lines_where IS NULL) THEN
918               x_Requirement_Lines_where := 'Where ';
919           ELSE
920               x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
921           END IF;
922           x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
923       END IF;
924 
925       -- example for VARCHAR2 datatype
926       IF( (p_requirement_line_rec.UOM_CODE IS NOT NULL) AND (p_requirement_line_rec.UOM_CODE <> FND_API.G_MISS_CHAR) )
927       THEN
928           -- check if item value contains '%' wildcard
929           OPEN c_chk_str1(p_requirement_line_rec.UOM_CODE);
930           FETCH c_chk_str1 INTO str_csr1;
931           CLOSE c_chk_str1;
932 
933           IF(str_csr1 <> 0) THEN
934               l_operator := ' LIKE ';
935           ELSE
936               l_operator := ' = ';
937           END IF;
938 
939           -- check if item value contains '_' wildcard
940           OPEN c_chk_str2(p_requirement_line_rec.UOM_CODE);
941           FETCH c_chk_str2 INTO str_csr2;
942           CLOSE c_chk_str2;
943 
944           IF(str_csr2 <> 0) THEN
945               l_operator := ' LIKE ';
946           ELSE
947               l_operator := ' = ';
948           END IF;
949 
950           IF(x_Requirement_Lines_where IS NULL) THEN
951               x_Requirement_Lines_where := 'Where ';
952           ELSE
953               x_Requirement_Lines_where := x_Requirement_Lines_where || ' AND ';
954           END IF;
955           x_Requirement_Lines_where := x_Requirement_Lines_where || 'p_requirement_line_rec.UOM_CODE ' || l_operator || ' :p_UOM_CODE';
956       END IF;
957 
958       -- Add more IF statements for each column below
959 
960       -- Debug Message
961       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Generate Where Ends');
962 
963 END Gen_Requirement_Lines_Where;
964 
965 -- Item-level validation procedures
966 PROCEDURE Validate_REQUIREMENT_LINE_ID (
967     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
968     P_Validation_mode            IN   VARCHAR2,
969     P_REQUIREMENT_LINE_ID                IN   NUMBER,
970     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
971     X_Return_Status              OUT NOCOPY  VARCHAR2,
972     X_Msg_Count                  OUT NOCOPY  NUMBER,
973     X_Msg_Data                   OUT NOCOPY  VARCHAR2
974     )
975 IS
976 BEGIN
977 
978       -- Initialize message list if p_init_msg_list is set to TRUE.
982       END IF;
979       IF FND_API.to_Boolean( p_init_msg_list )
980       THEN
981           FND_MSG_PUB.initialize;
983 
984 
985       -- Initialize API return status to SUCCESS
986       x_return_status := FND_API.G_RET_STS_SUCCESS;
987 
988       -- validate NOT NULL column
989       IF(p_REQUIREMENT_LINE_ID is NULL)
990       THEN
991           AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIREMENT_LINE_ID)');
992           x_return_status := FND_API.G_RET_STS_ERROR;
993       END IF;
994 
995       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
996       THEN
997           -- Hint: Validate data
998           -- IF p_REQUIREMENT_LINE_ID is not NULL and p_REQUIREMENT_LINE_ID <> G_MISS_CHAR
999           -- verify if data is valid
1000           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1001           NULL;
1002       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1003       THEN
1004           -- Hint: Validate data
1005           -- IF p_REQUIREMENT_LINE_ID <> G_MISS_CHAR
1006           -- verify if data is valid
1007           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1008           NULL;
1009       END IF;
1010 
1011       -- Standard call to get message count and if count is 1, get message info.
1012       FND_MSG_PUB.Count_And_Get
1013       (  p_count          =>   x_msg_count,
1014          p_data           =>   x_msg_data
1015       );
1016 
1017 END Validate_REQUIREMENT_LINE_ID;
1018 
1019 
1020 PROCEDURE Validate_REQUIREMENT_HEADER_ID (
1021     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1022     P_Validation_mode            IN   VARCHAR2,
1023     P_REQUIREMENT_HEADER_ID                IN   NUMBER,
1024     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1025     X_Return_Status              OUT NOCOPY  VARCHAR2,
1026     X_Msg_Count                  OUT NOCOPY  NUMBER,
1027     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1028     )
1029 IS
1030 BEGIN
1031 
1032       -- Initialize message list if p_init_msg_list is set to TRUE.
1033       IF FND_API.to_Boolean( p_init_msg_list )
1034       THEN
1035           FND_MSG_PUB.initialize;
1036       END IF;
1037 
1038 
1039       -- Initialize API return status to SUCCESS
1040       x_return_status := FND_API.G_RET_STS_SUCCESS;
1041 
1042       -- validate NOT NULL column
1043       IF(p_REQUIREMENT_HEADER_ID is NULL)
1044       THEN
1045           AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIREMENT_HEADER_ID)');
1046           x_return_status := FND_API.G_RET_STS_ERROR;
1047       END IF;
1048 
1049       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1050       THEN
1051           -- Hint: Validate data
1052           -- IF p_REQUIREMENT_HEADER_ID is not NULL and p_REQUIREMENT_HEADER_ID <> G_MISS_CHAR
1053           -- verify if data is valid
1054           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1055           NULL;
1056       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1057       THEN
1058           -- Hint: Validate data
1059           -- IF p_REQUIREMENT_HEADER_ID <> G_MISS_CHAR
1060           -- verify if data is valid
1061           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1062           NULL;
1063       END IF;
1064 
1065       -- Standard call to get message count and if count is 1, get message info.
1066       FND_MSG_PUB.Count_And_Get
1067       (  p_count          =>   x_msg_count,
1068          p_data           =>   x_msg_data
1069       );
1070 
1071 END Validate_REQUIREMENT_HEADER_ID;
1072 
1073 
1074 PROCEDURE Validate_INVENTORY_ITEM_ID (
1075     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1076     P_Validation_mode            IN   VARCHAR2,
1077     P_INVENTORY_ITEM_ID                IN   NUMBER,
1078     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1079     X_Return_Status              OUT NOCOPY  VARCHAR2,
1080     X_Msg_Count                  OUT NOCOPY  NUMBER,
1081     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1082     )
1083 IS
1084 BEGIN
1085 
1086       -- Initialize message list if p_init_msg_list is set to TRUE.
1087       IF FND_API.to_Boolean( p_init_msg_list )
1088       THEN
1089           FND_MSG_PUB.initialize;
1090       END IF;
1091 
1092 
1093       -- Initialize API return status to SUCCESS
1094       x_return_status := FND_API.G_RET_STS_SUCCESS;
1095 
1096       -- validate NOT NULL column
1097       IF(p_INVENTORY_ITEM_ID is NULL)
1098       THEN
1099           AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(INVENTORY_ITEM_ID)');
1100           x_return_status := FND_API.G_RET_STS_ERROR;
1101       END IF;
1102 
1103       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1104       THEN
1105           -- Hint: Validate data
1106           -- IF p_INVENTORY_ITEM_ID is not NULL and p_INVENTORY_ITEM_ID <> G_MISS_CHAR
1107           -- verify if data is valid
1108           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1109           NULL;
1110       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1111       THEN
1112           -- Hint: Validate data
1113           -- IF p_INVENTORY_ITEM_ID <> G_MISS_CHAR
1114           -- verify if data is valid
1115           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1116           NULL;
1117       END IF;
1118 
1119       -- Standard call to get message count and if count is 1, get message info.
1123       );
1120       FND_MSG_PUB.Count_And_Get
1121       (  p_count          =>   x_msg_count,
1122          p_data           =>   x_msg_data
1124 
1125 END Validate_INVENTORY_ITEM_ID;
1126 
1127 
1128 PROCEDURE Validate_UOM_CODE (
1129     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1130     P_Validation_mode            IN   VARCHAR2,
1131     P_UOM_CODE                IN   VARCHAR2,
1132     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1133     X_Return_Status              OUT NOCOPY  VARCHAR2,
1134     X_Msg_Count                  OUT NOCOPY  NUMBER,
1135     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1136     )
1137 IS
1138 BEGIN
1139 
1140       -- Initialize message list if p_init_msg_list is set to TRUE.
1141       IF FND_API.to_Boolean( p_init_msg_list )
1142       THEN
1143           FND_MSG_PUB.initialize;
1144       END IF;
1145 
1146 
1147       -- Initialize API return status to SUCCESS
1148       x_return_status := FND_API.G_RET_STS_SUCCESS;
1149 
1150       -- validate NOT NULL column
1151       IF(p_UOM_CODE is NULL)
1152       THEN
1153           AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(UOM_CODE)');
1154           x_return_status := FND_API.G_RET_STS_ERROR;
1155       END IF;
1156 
1157       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1158       THEN
1159           -- Hint: Validate data
1160           -- IF p_UOM_CODE is not NULL and p_UOM_CODE <> G_MISS_CHAR
1161           -- verify if data is valid
1162           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1163           NULL;
1164       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1165       THEN
1166           -- Hint: Validate data
1167           -- IF p_UOM_CODE <> G_MISS_CHAR
1168           -- verify if data is valid
1169           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1170           NULL;
1171       END IF;
1172 
1173       -- Standard call to get message count and if count is 1, get message info.
1174       FND_MSG_PUB.Count_And_Get
1175       (  p_count          =>   x_msg_count,
1176          p_data           =>   x_msg_data
1177       );
1178 
1179 END Validate_UOM_CODE;
1180 
1181 
1182 PROCEDURE Validate_REQUIRED_QUANTITY (
1183     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1184     P_Validation_mode            IN   VARCHAR2,
1185     P_REQUIRED_QUANTITY                IN   NUMBER,
1186     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1187     X_Return_Status              OUT NOCOPY  VARCHAR2,
1188     X_Msg_Count                  OUT NOCOPY  NUMBER,
1189     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1190     )
1191 IS
1192 BEGIN
1193 
1194       -- Initialize message list if p_init_msg_list is set to TRUE.
1195       IF FND_API.to_Boolean( p_init_msg_list )
1196       THEN
1197           FND_MSG_PUB.initialize;
1198       END IF;
1199 
1200 
1201       -- Initialize API return status to SUCCESS
1202       x_return_status := FND_API.G_RET_STS_SUCCESS;
1203 
1204       -- validate NOT NULL column
1205       IF(p_REQUIRED_QUANTITY is NULL)
1206       THEN
1207           AS_UTILITY_PVT.Debug_Message('ERROR', 'Private requirement_lines API: -Violate NOT NULL constraint(REQUIRED_QUANTITY)');
1208           x_return_status := FND_API.G_RET_STS_ERROR;
1209       END IF;
1210 
1211       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1212       THEN
1213           -- Hint: Validate data
1214           -- IF p_REQUIRED_QUANTITY is not NULL and p_REQUIRED_QUANTITY <> G_MISS_CHAR
1215           -- verify if data is valid
1216           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1217           NULL;
1218       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1219       THEN
1220           -- Hint: Validate data
1221           -- IF p_REQUIRED_QUANTITY <> G_MISS_CHAR
1222           -- verify if data is valid
1223           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1224           NULL;
1225       END IF;
1226 
1227       -- Standard call to get message count and if count is 1, get message info.
1228       FND_MSG_PUB.Count_And_Get
1229       (  p_count          =>   x_msg_count,
1230          p_data           =>   x_msg_data
1231       );
1232 
1233 END Validate_REQUIRED_QUANTITY;
1234 
1235 
1236 PROCEDURE Validate_SHIP_COMPLETE_FLAG (
1237     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1238     P_Validation_mode            IN   VARCHAR2,
1239     P_SHIP_COMPLETE_FLAG                IN   VARCHAR2,
1240     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1241     X_Return_Status              OUT NOCOPY  VARCHAR2,
1242     X_Msg_Count                  OUT NOCOPY  NUMBER,
1243     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1244     )
1245 IS
1246 BEGIN
1247 
1248       -- Initialize message list if p_init_msg_list is set to TRUE.
1249       IF FND_API.to_Boolean( p_init_msg_list )
1250       THEN
1251           FND_MSG_PUB.initialize;
1252       END IF;
1253 
1254 
1255       -- Initialize API return status to SUCCESS
1256       x_return_status := FND_API.G_RET_STS_SUCCESS;
1257 
1258       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1259       THEN
1260           -- Hint: Validate data
1261           -- IF p_SHIP_COMPLETE_FLAG is not NULL and p_SHIP_COMPLETE_FLAG <> G_MISS_CHAR
1262           -- verify if data is valid
1263           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1267           -- Hint: Validate data
1264           NULL;
1265       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1266       THEN
1268           -- IF p_SHIP_COMPLETE_FLAG <> G_MISS_CHAR
1269           -- verify if data is valid
1270           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1271           NULL;
1272       END IF;
1273 
1274       -- Standard call to get message count and if count is 1, get message info.
1275       FND_MSG_PUB.Count_And_Get
1276       (  p_count          =>   x_msg_count,
1277          p_data           =>   x_msg_data
1278       );
1279 
1280 END Validate_SHIP_COMPLETE_FLAG;
1281 
1282 
1283 PROCEDURE Validate_LIKELIHOOD (
1284     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1285     P_Validation_mode            IN   VARCHAR2,
1286     P_LIKELIHOOD                IN   NUMBER,
1287     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1288     X_Return_Status              OUT NOCOPY  VARCHAR2,
1289     X_Msg_Count                  OUT NOCOPY  NUMBER,
1290     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1291     )
1292 IS
1293 BEGIN
1294 
1295       -- Initialize message list if p_init_msg_list is set to TRUE.
1296       IF FND_API.to_Boolean( p_init_msg_list )
1297       THEN
1298           FND_MSG_PUB.initialize;
1299       END IF;
1300 
1301 
1302       -- Initialize API return status to SUCCESS
1303       x_return_status := FND_API.G_RET_STS_SUCCESS;
1304 
1305       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1306       THEN
1307           -- Hint: Validate data
1308           -- IF p_LIKELIHOOD is not NULL and p_LIKELIHOOD <> G_MISS_CHAR
1309           -- verify if data is valid
1310           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1311           NULL;
1312       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1313       THEN
1314           -- Hint: Validate data
1315           -- IF p_LIKELIHOOD <> G_MISS_CHAR
1316           -- verify if data is valid
1317           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1318           NULL;
1319       END IF;
1320 
1321       -- Standard call to get message count and if count is 1, get message info.
1322       FND_MSG_PUB.Count_And_Get
1323       (  p_count          =>   x_msg_count,
1324          p_data           =>   x_msg_data
1325       );
1326 
1327 END Validate_LIKELIHOOD;
1328 
1329 
1330 PROCEDURE Validate_REVISION (
1331     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1332     P_Validation_mode            IN   VARCHAR2,
1333     P_REVISION                IN   VARCHAR2,
1334     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1335     X_Return_Status              OUT NOCOPY  VARCHAR2,
1336     X_Msg_Count                  OUT NOCOPY  NUMBER,
1337     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1338     )
1339 IS
1340 BEGIN
1341 
1342       -- Initialize message list if p_init_msg_list is set to TRUE.
1343       IF FND_API.to_Boolean( p_init_msg_list )
1344       THEN
1345           FND_MSG_PUB.initialize;
1346       END IF;
1347 
1348 
1349       -- Initialize API return status to SUCCESS
1350       x_return_status := FND_API.G_RET_STS_SUCCESS;
1351 
1352       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1353       THEN
1354           -- Hint: Validate data
1355           -- IF p_REVISION is not NULL and p_REVISION <> G_MISS_CHAR
1356           -- verify if data is valid
1357           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1358           NULL;
1359       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1360       THEN
1361           -- Hint: Validate data
1362           -- IF p_REVISION <> G_MISS_CHAR
1363           -- verify if data is valid
1364           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1365           NULL;
1366       END IF;
1367 
1368       -- Standard call to get message count and if count is 1, get message info.
1369       FND_MSG_PUB.Count_And_Get
1370       (  p_count          =>   x_msg_count,
1371          p_data           =>   x_msg_data
1372       );
1373 
1374 END Validate_REVISION;
1375 
1376 
1377 PROCEDURE Validate_SOURCE_ORGANIZATION_ID (
1378     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1379     P_Validation_mode            IN   VARCHAR2,
1380     P_SOURCE_ORGANIZATION_ID                IN   NUMBER,
1381     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1382     X_Return_Status              OUT NOCOPY  VARCHAR2,
1383     X_Msg_Count                  OUT NOCOPY  NUMBER,
1384     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1385     )
1386 IS
1387 BEGIN
1388 
1389       -- Initialize message list if p_init_msg_list is set to TRUE.
1390       IF FND_API.to_Boolean( p_init_msg_list )
1391       THEN
1392           FND_MSG_PUB.initialize;
1393       END IF;
1394 
1395 
1396       -- Initialize API return status to SUCCESS
1397       x_return_status := FND_API.G_RET_STS_SUCCESS;
1398 
1399       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1400       THEN
1401           -- Hint: Validate data
1402           -- IF p_SOURCE_ORGANIZATION_ID is not NULL and p_SOURCE_ORGANIZATION_ID <> G_MISS_CHAR
1403           -- verify if data is valid
1404           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1405           NULL;
1406       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1407       THEN
1408           -- Hint: Validate data
1412           NULL;
1409           -- IF p_SOURCE_ORGANIZATION_ID <> G_MISS_CHAR
1410           -- verify if data is valid
1411           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1413       END IF;
1414 
1415       -- Standard call to get message count and if count is 1, get message info.
1416       FND_MSG_PUB.Count_And_Get
1417       (  p_count          =>   x_msg_count,
1418          p_data           =>   x_msg_data
1419       );
1420 
1421 END Validate_SOURCE_ORGANIZATION_ID;
1422 
1423 
1424 PROCEDURE Validate_SOURCE_SUBINVENTORY (
1425     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1426     P_Validation_mode            IN   VARCHAR2,
1427     P_SOURCE_SUBINVENTORY                IN   VARCHAR2,
1428     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1429     X_Return_Status              OUT NOCOPY  VARCHAR2,
1430     X_Msg_Count                  OUT NOCOPY  NUMBER,
1431     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1432     )
1433 IS
1434 BEGIN
1435 
1436       -- Initialize message list if p_init_msg_list is set to TRUE.
1437       IF FND_API.to_Boolean( p_init_msg_list )
1438       THEN
1439           FND_MSG_PUB.initialize;
1440       END IF;
1441 
1442 
1443       -- Initialize API return status to SUCCESS
1444       x_return_status := FND_API.G_RET_STS_SUCCESS;
1445 
1446       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1447       THEN
1448           -- Hint: Validate data
1449           -- IF p_SOURCE_SUBINVENTORY is not NULL and p_SOURCE_SUBINVENTORY <> G_MISS_CHAR
1450           -- verify if data is valid
1451           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1452           NULL;
1453       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1454       THEN
1455           -- Hint: Validate data
1456           -- IF p_SOURCE_SUBINVENTORY <> G_MISS_CHAR
1457           -- verify if data is valid
1458           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1459           NULL;
1460       END IF;
1461 
1462       -- Standard call to get message count and if count is 1, get message info.
1463       FND_MSG_PUB.Count_And_Get
1464       (  p_count          =>   x_msg_count,
1465          p_data           =>   x_msg_data
1466       );
1467 
1468 END Validate_SOURCE_SUBINVENTORY;
1469 
1470 
1471 PROCEDURE Validate_ORDERED_QUANTITY (
1472     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1473     P_Validation_mode            IN   VARCHAR2,
1474     P_ORDERED_QUANTITY                IN   NUMBER,
1475     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1476     X_Return_Status              OUT NOCOPY  VARCHAR2,
1477     X_Msg_Count                  OUT NOCOPY  NUMBER,
1478     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1479     )
1480 IS
1481 BEGIN
1482 
1483       -- Initialize message list if p_init_msg_list is set to TRUE.
1484       IF FND_API.to_Boolean( p_init_msg_list )
1485       THEN
1486           FND_MSG_PUB.initialize;
1487       END IF;
1488 
1489 
1490       -- Initialize API return status to SUCCESS
1491       x_return_status := FND_API.G_RET_STS_SUCCESS;
1492 
1493       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1494       THEN
1495           -- Hint: Validate data
1496           -- IF p_ORDERED_QUANTITY is not NULL and p_ORDERED_QUANTITY <> G_MISS_CHAR
1497           -- verify if data is valid
1498           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1499           NULL;
1500       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1501       THEN
1502           -- Hint: Validate data
1503           -- IF p_ORDERED_QUANTITY <> G_MISS_CHAR
1504           -- verify if data is valid
1505           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1506           NULL;
1507       END IF;
1508 
1509       -- Standard call to get message count and if count is 1, get message info.
1510       FND_MSG_PUB.Count_And_Get
1511       (  p_count          =>   x_msg_count,
1512          p_data           =>   x_msg_data
1513       );
1514 
1515 END Validate_ORDERED_QUANTITY;
1516 
1517 
1518 PROCEDURE Validate_ORDER_LINE_ID (
1519     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1520     P_Validation_mode            IN   VARCHAR2,
1521     P_ORDER_LINE_ID                IN   NUMBER,
1522     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1523     X_Return_Status              OUT NOCOPY  VARCHAR2,
1524     X_Msg_Count                  OUT NOCOPY  NUMBER,
1525     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1526     )
1527 IS
1528 BEGIN
1529 
1530       -- Initialize message list if p_init_msg_list is set to TRUE.
1531       IF FND_API.to_Boolean( p_init_msg_list )
1532       THEN
1533           FND_MSG_PUB.initialize;
1534       END IF;
1535 
1536 
1537       -- Initialize API return status to SUCCESS
1538       x_return_status := FND_API.G_RET_STS_SUCCESS;
1539 
1540       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1541       THEN
1542           -- Hint: Validate data
1543           -- IF p_ORDER_LINE_ID is not NULL and p_ORDER_LINE_ID <> G_MISS_CHAR
1544           -- verify if data is valid
1545           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1546           NULL;
1547       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1548       THEN
1549           -- Hint: Validate data
1550           -- IF p_ORDER_LINE_ID <> G_MISS_CHAR
1551           -- verify if data is valid
1555 
1552           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1553           NULL;
1554       END IF;
1556       -- Standard call to get message count and if count is 1, get message info.
1557       FND_MSG_PUB.Count_And_Get
1558       (  p_count          =>   x_msg_count,
1559          p_data           =>   x_msg_data
1560       );
1561 
1562 END Validate_ORDER_LINE_ID;
1563 
1564 
1565 PROCEDURE Validate_RESERVATION_ID (
1566     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1567     P_Validation_mode            IN   VARCHAR2,
1568     P_RESERVATION_ID                IN   NUMBER,
1569     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1570     X_Return_Status              OUT NOCOPY  VARCHAR2,
1571     X_Msg_Count                  OUT NOCOPY  NUMBER,
1572     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1573     )
1574 IS
1575 BEGIN
1576 
1577       -- Initialize message list if p_init_msg_list is set to TRUE.
1578       IF FND_API.to_Boolean( p_init_msg_list )
1579       THEN
1580           FND_MSG_PUB.initialize;
1581       END IF;
1582 
1583 
1584       -- Initialize API return status to SUCCESS
1585       x_return_status := FND_API.G_RET_STS_SUCCESS;
1586 
1587       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1588       THEN
1589           -- Hint: Validate data
1590           -- IF p_RESERVATION_ID is not NULL and p_RESERVATION_ID <> G_MISS_CHAR
1591           -- verify if data is valid
1592           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1593           NULL;
1594       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1595       THEN
1596           -- Hint: Validate data
1597           -- IF p_RESERVATION_ID <> G_MISS_CHAR
1598           -- verify if data is valid
1599           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1600           NULL;
1601       END IF;
1602 
1603       -- Standard call to get message count and if count is 1, get message info.
1604       FND_MSG_PUB.Count_And_Get
1605       (  p_count          =>   x_msg_count,
1606          p_data           =>   x_msg_data
1607       );
1608 
1609 END Validate_RESERVATION_ID;
1610 
1611 
1612 PROCEDURE Validate_ORDER_BY_DATE (
1613     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1614     P_Validation_mode            IN   VARCHAR2,
1615     P_ORDER_BY_DATE                IN   DATE,
1616     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1617     X_Return_Status              OUT NOCOPY  VARCHAR2,
1618     X_Msg_Count                  OUT NOCOPY  NUMBER,
1619     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1620     )
1621 IS
1622 BEGIN
1623 
1624       -- Initialize message list if p_init_msg_list is set to TRUE.
1625       IF FND_API.to_Boolean( p_init_msg_list )
1626       THEN
1627           FND_MSG_PUB.initialize;
1628       END IF;
1629 
1630 
1631       -- Initialize API return status to SUCCESS
1632       x_return_status := FND_API.G_RET_STS_SUCCESS;
1633 
1634       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1635       THEN
1636           -- Hint: Validate data
1637           -- IF p_ORDER_BY_DATE is not NULL and p_ORDER_BY_DATE <> G_MISS_CHAR
1638           -- verify if data is valid
1639           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1640           NULL;
1641       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1642       THEN
1643           -- Hint: Validate data
1644           -- IF p_ORDER_BY_DATE <> G_MISS_CHAR
1645           -- verify if data is valid
1646           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1647           NULL;
1648       END IF;
1649 
1650       -- Standard call to get message count and if count is 1, get message info.
1651       FND_MSG_PUB.Count_And_Get
1652       (  p_count          =>   x_msg_count,
1653          p_data           =>   x_msg_data
1654       );
1655 
1656 END Validate_ORDER_BY_DATE;
1657 
1658 
1659 -- Hint: inter-field level validation can be added here.
1660 -- Hint: If p_validation_mode = AS_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1661 --       to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1662 --       stored in database table.
1663 PROCEDURE Validate_Requirement_Lines_rec(
1664     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1665     P_Validation_mode            IN   VARCHAR2,
1666     p_requirement_line_rec     IN    Requirement_Lines_Rec_Type,
1667     X_Return_Status              OUT NOCOPY  VARCHAR2,
1668     X_Msg_Count                  OUT NOCOPY  NUMBER,
1669     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1670     )
1671 IS
1672 BEGIN
1673 
1674       -- Initialize message list if p_init_msg_list is set to TRUE.
1675       IF FND_API.to_Boolean( p_init_msg_list )
1676       THEN
1677           FND_MSG_PUB.initialize;
1678       END IF;
1679 
1680 
1681       -- Initialize API return status to SUCCESS
1682       x_return_status := FND_API.G_RET_STS_SUCCESS;
1683 
1684       -- Hint: Validate data
1685       -- If data not valid
1686       -- THEN
1687       -- x_return_status := FND_API.G_RET_STS_ERROR;
1688 
1689       -- Debug Message
1690       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'API_INVALID_RECORD');
1691 
1692       -- Standard call to get message count and if count is 1, get message info.
1693       FND_MSG_PUB.Count_And_Get
1694       (  p_count          =>   x_msg_count,
1695          p_data           =>   x_msg_data
1696       );
1697 
1701     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1698 END Validate_Requirement_Lines_Rec;
1699 
1700 PROCEDURE Validate_requirement_lines(
1702     P_Validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1703     P_Validation_mode            IN   VARCHAR2,
1704     p_requirement_line_rec     IN    Requirement_Lines_Rec_Type,
1705     X_Return_Status              OUT NOCOPY  VARCHAR2,
1706     X_Msg_Count                  OUT NOCOPY  NUMBER,
1707     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1708     )
1709 IS
1710 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_requirement_lines';
1711  BEGIN
1712 
1713       -- Debug Message
1714       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
1715 
1716 
1717       -- Initialize API return status to SUCCESS
1718       x_return_status := FND_API.G_RET_STS_SUCCESS;
1719 
1720       IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
1721           -- Hint: We provide validation procedure for every column. Developer should delete
1722           --       unnecessary validation procedures.
1723           Validate_REQUIREMENT_LINE_ID(
1724               p_init_msg_list          => FND_API.G_FALSE,
1725               p_validation_mode        => p_validation_mode,
1726               p_REQUIREMENT_LINE_ID   => p_requirement_line_rec.REQUIREMENT_LINE_ID,
1727               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1728               x_return_status          => x_return_status,
1729               x_msg_count              => x_msg_count,
1730               x_msg_data               => x_msg_data);
1731           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1732               raise FND_API.G_EXC_ERROR;
1733           END IF;
1734 
1735           Validate_REQUIREMENT_HEADER_ID(
1736               p_init_msg_list          => FND_API.G_FALSE,
1737               p_validation_mode        => p_validation_mode,
1738               p_REQUIREMENT_HEADER_ID   => p_requirement_line_rec.REQUIREMENT_HEADER_ID,
1739               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1740               x_return_status          => x_return_status,
1741               x_msg_count              => x_msg_count,
1742               x_msg_data               => x_msg_data);
1743           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1744               raise FND_API.G_EXC_ERROR;
1745           END IF;
1746 
1747           Validate_INVENTORY_ITEM_ID(
1748               p_init_msg_list          => FND_API.G_FALSE,
1749               p_validation_mode        => p_validation_mode,
1750               p_INVENTORY_ITEM_ID   => p_requirement_line_rec.INVENTORY_ITEM_ID,
1751               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1752               x_return_status          => x_return_status,
1753               x_msg_count              => x_msg_count,
1754               x_msg_data               => x_msg_data);
1755           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1756               raise FND_API.G_EXC_ERROR;
1757           END IF;
1758 
1759           Validate_UOM_CODE(
1760               p_init_msg_list          => FND_API.G_FALSE,
1761               p_validation_mode        => p_validation_mode,
1762               p_UOM_CODE   => p_requirement_line_rec.UOM_CODE,
1763               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1764               x_return_status          => x_return_status,
1765               x_msg_count              => x_msg_count,
1766               x_msg_data               => x_msg_data);
1767           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1768               raise FND_API.G_EXC_ERROR;
1769           END IF;
1770 
1771           Validate_REQUIRED_QUANTITY(
1772               p_init_msg_list          => FND_API.G_FALSE,
1773               p_validation_mode        => p_validation_mode,
1774               p_REQUIRED_QUANTITY   => p_requirement_line_rec.REQUIRED_QUANTITY,
1775               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1776               x_return_status          => x_return_status,
1777               x_msg_count              => x_msg_count,
1778               x_msg_data               => x_msg_data);
1779           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1780               raise FND_API.G_EXC_ERROR;
1781           END IF;
1782 
1783           Validate_SHIP_COMPLETE_FLAG(
1784               p_init_msg_list          => FND_API.G_FALSE,
1785               p_validation_mode        => p_validation_mode,
1786               p_SHIP_COMPLETE_FLAG   => p_requirement_line_rec.SHIP_COMPLETE_FLAG,
1787               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1788               x_return_status          => x_return_status,
1789               x_msg_count              => x_msg_count,
1790               x_msg_data               => x_msg_data);
1791           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1792               raise FND_API.G_EXC_ERROR;
1793           END IF;
1794 
1795           Validate_LIKELIHOOD(
1796               p_init_msg_list          => FND_API.G_FALSE,
1797               p_validation_mode        => p_validation_mode,
1798               p_LIKELIHOOD   => p_requirement_line_rec.LIKELIHOOD,
1799               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1800               x_return_status          => x_return_status,
1801               x_msg_count              => x_msg_count,
1802               x_msg_data               => x_msg_data);
1803           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1804               raise FND_API.G_EXC_ERROR;
1805           END IF;
1806 
1807           Validate_REVISION(
1811               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1808               p_init_msg_list          => FND_API.G_FALSE,
1809               p_validation_mode        => p_validation_mode,
1810               p_REVISION   => p_requirement_line_rec.REVISION,
1812               x_return_status          => x_return_status,
1813               x_msg_count              => x_msg_count,
1814               x_msg_data               => x_msg_data);
1815           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1816               raise FND_API.G_EXC_ERROR;
1817           END IF;
1818 
1819           Validate_SOURCE_ORGANIZATION_ID(
1820               p_init_msg_list          => FND_API.G_FALSE,
1821               p_validation_mode        => p_validation_mode,
1822               p_SOURCE_ORGANIZATION_ID   => p_requirement_line_rec.SOURCE_ORGANIZATION_ID,
1823               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1824               x_return_status          => x_return_status,
1825               x_msg_count              => x_msg_count,
1826               x_msg_data               => x_msg_data);
1827           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1828               raise FND_API.G_EXC_ERROR;
1829           END IF;
1830 
1831           Validate_SOURCE_SUBINVENTORY(
1832               p_init_msg_list          => FND_API.G_FALSE,
1833               p_validation_mode        => p_validation_mode,
1834               p_SOURCE_SUBINVENTORY   => p_requirement_line_rec.SOURCE_SUBINVENTORY,
1835               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1836               x_return_status          => x_return_status,
1837               x_msg_count              => x_msg_count,
1838               x_msg_data               => x_msg_data);
1839           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1840               raise FND_API.G_EXC_ERROR;
1841           END IF;
1842 
1843           Validate_ORDERED_QUANTITY(
1844               p_init_msg_list          => FND_API.G_FALSE,
1845               p_validation_mode        => p_validation_mode,
1846               p_ORDERED_QUANTITY   => p_requirement_line_rec.ORDERED_QUANTITY,
1847               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1848               x_return_status          => x_return_status,
1849               x_msg_count              => x_msg_count,
1850               x_msg_data               => x_msg_data);
1851           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1852               raise FND_API.G_EXC_ERROR;
1853           END IF;
1854 
1855           Validate_ORDER_LINE_ID(
1856               p_init_msg_list          => FND_API.G_FALSE,
1857               p_validation_mode        => p_validation_mode,
1858               p_ORDER_LINE_ID   => p_requirement_line_rec.ORDER_LINE_ID,
1859               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1860               x_return_status          => x_return_status,
1861               x_msg_count              => x_msg_count,
1862               x_msg_data               => x_msg_data);
1863           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1864               raise FND_API.G_EXC_ERROR;
1865           END IF;
1866 
1867           Validate_RESERVATION_ID(
1868               p_init_msg_list          => FND_API.G_FALSE,
1869               p_validation_mode        => p_validation_mode,
1870               p_RESERVATION_ID   => p_requirement_line_rec.RESERVATION_ID,
1871               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1872               x_return_status          => x_return_status,
1873               x_msg_count              => x_msg_count,
1874               x_msg_data               => x_msg_data);
1875           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1876               raise FND_API.G_EXC_ERROR;
1877           END IF;
1878 
1879           Validate_ORDER_BY_DATE(
1880               p_init_msg_list          => FND_API.G_FALSE,
1881               p_validation_mode        => p_validation_mode,
1882               p_ORDER_BY_DATE   => p_requirement_line_rec.ORDER_BY_DATE,
1883               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1884               x_return_status          => x_return_status,
1885               x_msg_count              => x_msg_count,
1886               x_msg_data               => x_msg_data);
1887           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1888               raise FND_API.G_EXC_ERROR;
1889           END IF;
1890 
1891       END IF;
1892 
1893       IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_RECORD) THEN
1894           -- Hint: Inter-field level validation can be added here
1895           -- invoke record level validation procedures
1896           Validate_Requirement_Lines_Rec(
1897               p_init_msg_list          => FND_API.G_FALSE,
1898               p_validation_mode        => p_validation_mode,
1899           p_requirement_line_rec     =>    p_requirement_line_rec,
1900               x_return_status          => x_return_status,
1901               x_msg_count              => x_msg_count,
1902               x_msg_data               => x_msg_data);
1903 
1904           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1905               raise FND_API.G_EXC_ERROR;
1906           END IF;
1907       END IF;
1908 
1909       IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD) THEN
1910           -- invoke inter-record level validation procedures
1911           NULL;
1912       END IF;
1913 
1914       IF (p_validation_level >= AS_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY) THEN
1915           -- invoke inter-entity level validation procedures
1916           NULL;
1917       END IF;
1918 
1919 
1920       -- Debug Message
1921       AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
1922 
1923 END Validate_requirement_lines;
1924 
1925 */
1926 
1927 End CSP_Requirement_Lines_PVT;