DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_CLEARANCE_VALIDATE_PVT

Source


1 PACKAGE BODY EAM_CLEARANCE_VALIDATE_PVT AS
2   /* $Header: EAMVCLVB.pls 120.1.12020000.2 2012/10/04 10:23:47 vboddapa ship $ */
3   /***************************************************************************
4   --
5   --  Copyright (c) 2011 Oracle Corporation, Redwood Shores, CA, USA
6   --  All rights reserved.
7   --
8   --  FILENAME: EAMVCLVS.pls
9   --
10   --  DESCRIPTION: BODY of package EAM_CLEARANCE_VALIDATE_PVT
11   --
12   --  NOTES
13   --
14   --  HISTORY
15   --
16   --
17   ***************************************************************************/
18   -- g_debug_flag            VARCHAR2(1) := 'N';
19   g_dummy NUMBER;
20 
21   /********************************************************************
22 * Procedure     : Check_Existence
23 * Purpose       : Procedure will query the old work Clearance
24                   record and return it in old record variables.
25 *********************************************************************/
26 PROCEDURE CHECK_EXISTENCE
27   (   p_work_clearance_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
28     , x_clearance_header_rec    OUT NOCOPY  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
29     , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
30     , x_return_Status      OUT NOCOPY VARCHAR2
31   )IS
32   l_token_tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
33   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
34   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
35   l_return_status VARCHAR2(1);
36   l_work_clearance_header_rec EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type;
37 
38 BEGIN
39 IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Quering Clearance'); END IF;
40 
41 EAM_CLEARANCE_UTILITY_PVT.QUERY_ROW (
42                   p_work_clearance_id => p_work_clearance_header_rec.work_clearance_id ,
43                   p_organization_id => p_work_clearance_header_rec.organization_id ,
44                   x_work_clearance_header_rec => l_work_clearance_header_rec ,
45                   x_Return_status => l_return_status );
46 
47   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Query Row Returned with : ' || l_return_status);
48   END IF;
49   IF l_return_status = EAM_PROCESS_WO_PVT.G_RECORD_FOUND AND p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE THEN
50     l_out_mesg_token_tbl  := l_mesg_token_tbl;
51     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
52                         x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
53                         p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
54                         p_message_name => 'EAM_SAFETY_ALREADY_EXISTS' ,
55                         p_token_tbl => l_token_tbl );
56     l_mesg_token_tbl   := l_out_mesg_token_tbl;
57     l_return_status    := FND_API.G_RET_STS_ERROR;
58 
59   ELSIF l_return_status = EAM_PROCESS_WO_PVT.G_RECORD_NOT_FOUND AND p_work_clearance_header_rec.transaction_type IN (EAM_PROCESS_WO_PVT.G_OPR_UPDATE, EAM_PROCESS_WO_PVT.G_OPR_DELETE) THEN
60           l_token_tbl(1).token_name  := 'SAFETY_NAME';
61         l_token_tbl(1).token_value :=  p_work_clearance_header_rec.work_clearance_name;
62         l_out_mesg_token_tbl  := l_mesg_token_tbl;
63         EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
64                   x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
65                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
66                   p_message_name => 'EAM_SAFETY_EXISTENCE_ERROR' ,
67                   p_token_tbl => l_token_tbl );
68        l_mesg_token_tbl   := l_out_mesg_token_tbl;
69        l_return_status    := FND_API.G_RET_STS_ERROR;
70 
71   ELSIF l_Return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
72        l_out_mesg_token_tbl  := l_mesg_token_tbl;
73        EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
74                 x_Mesg_token_tbl => l_out_Mesg_Token_Tbl ,
75                 p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
76                 p_message_name => NULL ,
77                 p_message_text => 'Unexpected error' );
78        l_mesg_token_tbl := l_out_mesg_token_tbl;
79        l_return_status  := FND_API.G_RET_STS_UNEXP_ERROR;
80   ELSE
81       l_return_status          := FND_API.G_RET_STS_SUCCESS;
82       x_clearance_header_rec   :=l_work_clearance_header_rec;
83   END IF;
84   x_return_status  := l_return_status;
85   x_mesg_token_tbl := l_mesg_token_tbl;
86 
87 END CHECK_EXISTENCE;
88 
89 /********************************************************************
90 * Procedure: Check_Attributes
91 * Purpose: Check_Attributes procedure will validate every
92            Revised item attribute in its entirely.
93 *********************************************************************/
94 PROCEDURE CHECK_ATTRIBUTES
95   (   p_work_clearance_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
96     , p_old_clearance_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
97     , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
98     , x_return_Status      OUT NOCOPY VARCHAR2
99   ) IS
100 
101   l_err_text VARCHAR2(2000) := NULL;
102   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
103   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
104   l_Token_Tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
105   l_work_clearance_id number;
106 BEGIN
107 
108   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Within Clearance Check Attributes . . . '); END IF;
109   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating organization_id (EAM enabled) . . . ');
110   END IF;
111 
112   BEGIN
113     SELECT 1
114     INTO g_dummy
115     FROM wip_eam_parameters wep,
116       mtl_parameters mp
117     WHERE wep.organization_id = mp.organization_id
118     AND mp.eam_enabled_flag   = 'Y'
119     AND wep.organization_id   = p_work_clearance_header_rec.organization_id;
120     x_return_status          := FND_API.G_RET_STS_SUCCESS;
121   EXCEPTION
122   WHEN no_data_found THEN
123     l_out_mesg_token_tbl := l_mesg_token_tbl;
124     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
125                   p_message_name => 'EAM_SAFETY_ORG_EAM_ENABLED' ,
126                   p_token_tbl => l_token_tbl ,
127                   p_mesg_token_tbl => l_mesg_token_tbl ,
128                   x_mesg_token_tbl => l_out_mesg_token_tbl );
129     l_mesg_token_tbl := l_out_mesg_token_tbl;
130     x_return_status  := FND_API.G_RET_STS_ERROR;
131     x_mesg_token_tbl := l_mesg_token_tbl ;
132     RETURN;
133   END;
134 
135   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating if Clearance ID already exists for create . . . '); END IF;
136 
137   DECLARE
138     l_count NUMBER;
139   BEGIN
140     IF (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE) THEN
141       SELECT COUNT(*)
142       INTO l_count
143       FROM EAM_WORK_CLEARANCES
144       WHERE WORK_CLEARANCE_ID     = p_work_clearance_header_rec.WORK_CLEARANCE_ID
145       AND organization_id = p_work_clearance_header_rec.organization_id;
146       IF(l_count          > 0) THEN
147         raise fnd_api.g_exc_unexpected_error;
148       END IF;
149     END IF;
150     x_return_status := FND_API.G_RET_STS_SUCCESS;
151   EXCEPTION
152   WHEN fnd_api.g_exc_unexpected_error THEN
153     l_token_tbl(1).token_name  := 'SAFETY_NAME';
154      l_token_tbl(1).token_value :=  p_work_clearance_header_rec.WORK_CLEARANCE_NAME;
155     l_out_mesg_token_tbl := l_mesg_token_tbl;
156     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
157                     p_message_name => 'EAM_SAFETY_ID_EXISTS' ,
158                     p_token_tbl => l_token_tbl ,
159                     p_mesg_token_tbl => l_mesg_token_tbl ,
160                     x_mesg_token_tbl => l_out_mesg_token_tbl );
161     l_mesg_token_tbl := l_out_mesg_token_tbl;
162     x_return_status  := FND_API.G_RET_STS_ERROR;
163     x_mesg_token_tbl := l_mesg_token_tbl ;
164     RETURN;
165   END;
166 
167   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating if Clearance ID exists for update . . . '); END IF;
168 
169   DECLARE
170     l_count NUMBER;
171   BEGIN
172     IF (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE) THEN
173       SELECT COUNT(*)
174       INTO l_count
175       FROM EAM_WORK_CLEARANCES
176       WHERE WORK_CLEARANCE_ID     = p_work_clearance_header_rec.WORK_CLEARANCE_ID
177       AND organization_id = p_work_clearance_header_rec.organization_id;
178 
179       IF(l_count         <> 1) THEN
180         raise fnd_api.g_exc_unexpected_error;
181       END IF;
182     END IF;
183     x_return_status := FND_API.G_RET_STS_SUCCESS;
184   EXCEPTION
185   WHEN fnd_api.g_exc_unexpected_error THEN
186     l_out_mesg_token_tbl := l_mesg_token_tbl;
187     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
188                   p_message_name => 'EAM_SAFETY_ID_NOT_EXIST' ,
189                   p_token_tbl => l_token_tbl ,
190                   p_mesg_token_tbl => l_mesg_token_tbl ,
191                   x_mesg_token_tbl => l_out_mesg_token_tbl );
192     l_mesg_token_tbl := l_out_mesg_token_tbl;
193     x_return_status  := FND_API.G_RET_STS_ERROR;
194     x_mesg_token_tbl := l_mesg_token_tbl ;
195     RETURN;
196   END;
197 
198 
199 
200   DECLARE
201     l_count NUMBER;
202   BEGIN
203     IF (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE) THEN
204 
205       IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating Clearance Name in create. . . '); END IF;
206 
207       SELECT COUNT(*)
208       INTO l_count
209       FROM EAM_WORK_CLEARANCES
210       WHERE work_clearance_name   = p_work_clearance_header_rec.work_clearance_name
211       AND organization_id = p_work_clearance_header_rec.organization_id;
212       IF(l_count          > 0) THEN
213         raise fnd_api.g_exc_unexpected_error;
214       END IF;
215     END IF;
216 
217     -- Clearance name should be validated incase of copy Clearance,where transaction type is update.
218 
219     IF (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE) THEN
220       BEGIN
221 
222 	IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating Clearance Name in Update '); END IF;
223 
224         SELECT WORK_CLEARANCE_ID
225         INTO l_work_clearance_id
226         FROM EAM_WORK_CLEARANCES
227         WHERE work_clearance_name   = p_work_clearance_header_rec.work_clearance_name
228         AND organization_id = p_work_clearance_header_rec.organization_id;
229       EXCEPTION
230         WHEN others THEN
231           l_work_clearance_id := p_work_clearance_header_rec.WORK_CLEARANCE_ID;
232       END;
233     END IF;
234 
235     IF(l_work_clearance_id  <> p_work_clearance_header_rec.WORK_CLEARANCE_ID) THEN
236        raise fnd_api.g_exc_unexpected_error;
237     END IF;
238 
239     x_return_status := FND_API.G_RET_STS_SUCCESS;
240   EXCEPTION
241   WHEN fnd_api.g_exc_unexpected_error THEN
242     l_out_mesg_token_tbl := l_mesg_token_tbl;
243     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
244                     p_message_name => 'EAM_SAFETY_NAME' ,
245                     p_token_tbl => l_token_tbl ,
246                     p_mesg_token_tbl => l_mesg_token_tbl ,
247                     x_mesg_token_tbl => l_out_mesg_token_tbl );
248     l_mesg_token_tbl := l_out_mesg_token_tbl;
249     x_return_status  := FND_API.G_RET_STS_ERROR;
250     x_mesg_token_tbl := l_mesg_token_tbl ;
251     RETURN;
252   END;
253 
254   --  status_type
255   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating status_type. . . '); END IF;
256 
257   BEGIN
258     IF (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE AND p_work_clearance_header_rec.system_status NOT IN (wip_constants.released, wip_constants.draft)) THEN
259       raise fnd_api.g_exc_unexpected_error;
260   --  elsif (p_work_clearance_header_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND p_work_clearance_header_rec.system_status NOT IN (wip_constants.released, wip_constants.cancelled,wip_constants.comp_chrg,wip_constants.comp_nochrg )) THEN
261   --    raise fnd_api.g_exc_unexpected_error;
262     END IF;
263     x_return_status := FND_API.G_RET_STS_SUCCESS;
264   EXCEPTION
265   WHEN fnd_api.g_exc_unexpected_error THEN
266     l_out_mesg_token_tbl := l_mesg_token_tbl;
267     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
268                   p_message_name => 'EAM_SAFETY_STATUS_TYPE' ,
269                   p_token_tbl => l_token_tbl ,
270                   p_mesg_token_tbl => l_mesg_token_tbl ,
271                   x_mesg_token_tbl => l_out_mesg_token_tbl );
272     l_mesg_token_tbl := l_out_mesg_token_tbl;
273     x_return_status  := FND_API.G_RET_STS_ERROR;
274     x_mesg_token_tbl := l_mesg_token_tbl ;
275     RETURN;
276   END;
277 
278 /*  IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating status_type for cancelled. . . '); END IF;
279   BEGIN
280     IF (p_work_clearance_header_rec.transaction_type= EAM_PROCESS_WO_PVT.G_OPR_UPDATE AND
281     p_work_clearance_header_rec.status_type = wip_constants.cancelled OR
282     p_work_clearance_header_rec.PERMIT_NAME <> p_old_work_permit_header_rec.PERMIT_NAME OR
283     p_work_clearance_header_rec.PERMIT_TYPE <> p_old_work_permit_header_rec.PERMIT_TYPE OR
284     p_work_clearance_header_rec.DESCRIPTION <> p_old_work_permit_header_rec.DESCRIPTION OR
285     p_work_clearance_header_rec.ORGANIZATION_ID <> p_old_work_permit_header_rec.ORGANIZATION_ID OR
286     p_work_clearance_header_rec.VALID_FROM <> p_old_work_permit_header_rec.VALID_FROM OR
287     p_work_clearance_header_rec.VALID_TO <> p_old_work_permit_header_rec.VALID_TO OR
288     p_work_clearance_header_rec.PENDING_FLAG <> p_old_work_permit_header_rec.PENDING_FLAG OR
289     p_work_clearance_header_rec.COMPLETION_DATE <> p_old_work_permit_header_rec.COMPLETION_DATE OR
290     p_work_clearance_header_rec.USER_DEFINED_STATUS_ID <> p_old_work_permit_header_rec.USER_DEFINED_STATUS_ID OR
291     p_work_clearance_header_rec.ATTRIBUTE_CATEGORY <> p_old_work_permit_header_rec.ATTRIBUTE_CATEGORY OR
292     p_work_clearance_header_rec.ATTRIBUTE1 <> p_old_work_permit_header_rec.ATTRIBUTE1 OR
293     p_work_clearance_header_rec.ATTRIBUTE2 <> p_old_work_permit_header_rec.ATTRIBUTE2 OR
294     p_work_clearance_header_rec.ATTRIBUTE3 <> p_old_work_permit_header_rec.ATTRIBUTE3 OR
295     p_work_clearance_header_rec.ATTRIBUTE4 <> p_old_work_permit_header_rec.ATTRIBUTE4 OR
296     p_work_clearance_header_rec.ATTRIBUTE5 <> p_old_work_permit_header_rec.ATTRIBUTE5 OR
297     p_work_clearance_header_rec.ATTRIBUTE6 <> p_old_work_permit_header_rec.ATTRIBUTE6 OR
298     p_work_clearance_header_rec.ATTRIBUTE7 <> p_old_work_permit_header_rec.ATTRIBUTE7 OR
299     p_work_clearance_header_rec.ATTRIBUTE8 <> p_old_work_permit_header_rec.ATTRIBUTE8 OR
300     p_work_clearance_header_rec.ATTRIBUTE9 <> p_old_work_permit_header_rec.ATTRIBUTE9 OR
301     p_work_clearance_header_rec.ATTRIBUTE10<> p_old_work_permit_header_rec.ATTRIBUTE10 OR
302     p_work_clearance_header_rec.ATTRIBUTE11 <> p_old_work_permit_header_rec.ATTRIBUTE11 OR
303     p_work_clearance_header_rec.ATTRIBUTE12 <> p_old_work_permit_header_rec.ATTRIBUTE12 OR
304     p_work_clearance_header_rec.ATTRIBUTE13 <> p_old_work_permit_header_rec.ATTRIBUTE13 OR
305     p_work_clearance_header_rec.ATTRIBUTE14 <> p_old_work_permit_header_rec.ATTRIBUTE14 OR
306     p_work_clearance_header_rec.ATTRIBUTE15 <> p_old_work_permit_header_rec.ATTRIBUTE15 OR
307     p_work_clearance_header_rec.APPROVED_BY <> p_old_work_permit_header_rec.APPROVED_BY ) THEN
308       raise fnd_api.g_exc_unexpected_error;
309     END IF;
310     x_return_status := FND_API.G_RET_STS_SUCCESS;
311   EXCEPTION
312   WHEN fnd_api.g_exc_unexpected_error THEN
313    l_token_tbl(1).token_name  := 'SAFETY_NAME';
314      l_token_tbl(1).token_value :=  p_work_clearance_header_rec.WORK_CLEARANCE_NAME;
315    -- l_out_mesg_token_tbl := l_mesg_token_tbl;
316     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
317                   p_message_name => 'EAM_SAFETY_STATUS_TYPE' ,
318                   p_token_tbl => l_token_tbl ,
319                   p_mesg_token_tbl => l_mesg_token_tbl ,
320                   x_mesg_token_tbl => l_out_mesg_token_tbl );
321     l_mesg_token_tbl := l_out_mesg_token_tbl;
322     x_return_status  := FND_API.G_RET_STS_ERROR;
323     x_mesg_token_tbl := l_mesg_token_tbl ;
324     RETURN;
325   END; */
326 
327   --  user_id
328   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating user_id . . . '); END IF;
329 
330   BEGIN
331     IF (p_work_clearance_header_rec.user_id IS NOT NULL) THEN
332       SELECT 1
333       INTO g_dummy
334       FROM fnd_user
335       WHERE user_id    = p_work_clearance_header_rec.user_id;
336       x_return_status := FND_API.G_RET_STS_SUCCESS;
337     END IF;
338   EXCEPTION
339   WHEN no_data_found THEN
340     l_out_mesg_token_tbl := l_mesg_token_tbl;
341     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
342                   p_message_name => 'EAM_SAFETY_USER' ,
343                   p_token_tbl => l_token_tbl ,
344                   p_mesg_token_tbl => l_mesg_token_tbl ,
345                   x_mesg_token_tbl => l_out_mesg_token_tbl );
346     l_mesg_token_tbl := l_out_mesg_token_tbl;
347     x_return_status  := FND_API.G_RET_STS_ERROR;
348     x_mesg_token_tbl := l_mesg_token_tbl ;
349     RETURN;
350   END;
351 
352   --  responsibility_id
353   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Validating responsibility_id . . . '); END IF;
354 
355   BEGIN
356     IF (p_work_clearance_header_rec.responsibility_id IS NOT NULL) THEN
357       SELECT 1
358       INTO g_dummy
359       FROM fnd_responsibility
360       WHERE responsibility_id = p_work_clearance_header_rec.responsibility_id;
361       x_return_status        := FND_API.G_RET_STS_SUCCESS;
362     END IF;
363   EXCEPTION
364   WHEN no_data_found THEN
365     l_out_mesg_token_tbl := l_mesg_token_tbl;
366     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
367                 p_message_name => 'EAM_SAFETY_RESPONSIBILITY' ,
368                 p_token_tbl => l_token_tbl ,
369                 p_mesg_token_tbl => l_mesg_token_tbl ,
370                 x_mesg_token_tbl => l_out_mesg_token_tbl );
371     l_mesg_token_tbl := l_out_mesg_token_tbl;
372     x_return_status  := FND_API.G_RET_STS_ERROR;
373     x_mesg_token_tbl := l_mesg_token_tbl ;
374     RETURN;
375   END;
376 
377 END CHECK_ATTRIBUTES;
378 
379 
380 /********************************************************************
381 * Procedure     : Check_Required
382 * Purpose       : Check_Required procedure will check the existence
383                   of mandatory attributes.
384 *********************************************************************/
385 PROCEDURE CHECK_REQUIRED
386  (   p_work_clearance_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
387    , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
388    , x_return_Status      OUT NOCOPY VARCHAR2
389   )IS
390   l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
391   l_out_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
392   l_Token_Tbl EAM_ERROR_MESSAGE_PVT.Token_Tbl_Type;
393 BEGIN
394   IF EAM_PROCESS_WO_PVT.GET_DEBUG = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Checking required attributes for Clearance . . . '); END IF;
395 
396  x_return_status                       := FND_API.G_RET_STS_SUCCESS;
397 
398   IF p_work_clearance_header_rec.WORK_CLEARANCE_ID IS NULL THEN
399 
400     l_out_mesg_token_tbl := l_mesg_token_tbl;
401     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
402                     p_message_name => 'EAM_SAFETY_ID_REQUIRED' ,
403                     p_token_tbl => l_Token_tbl ,
404                     p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
405                     x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
406     l_mesg_token_tbl := l_out_mesg_token_tbl;
407     x_return_status  := FND_API.G_RET_STS_ERROR;
408   END IF;
409   IF p_work_clearance_header_rec.WORK_CLEARANCE_NAME IS NULL THEN
410 
411     l_out_mesg_token_tbl := l_mesg_token_tbl;
412     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
413                   p_message_name => 'EAM_SAFETY_NAME_REQUIRED' ,
414                   p_token_tbl => l_Token_tbl ,
415                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
416                   x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
417     l_mesg_token_tbl := l_out_mesg_token_tbl;
418     x_return_status  := FND_API.G_RET_STS_ERROR;
419   END IF;
420 
421   IF p_work_clearance_header_rec.ORGANIZATION_ID IS NULL THEN
422 
423     l_out_mesg_token_tbl := l_mesg_token_tbl;
424     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
425                     p_message_name => 'EAM_SAFETY_ORG_REQUIRED' ,
426                     p_token_tbl => l_Token_tbl ,
427                     p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
428                     x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
429     l_mesg_token_tbl := l_out_mesg_token_tbl;
430     x_return_status  := FND_API.G_RET_STS_ERROR;
431   END IF;
432 
433   IF p_work_clearance_header_rec.SYSTEM_STATUS IS NULL THEN
434     l_out_mesg_token_tbl := l_mesg_token_tbl;
435     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
436                   p_message_name => 'EAM_CLEARANCE_STATUS_REQUIRED' ,
437                   p_token_tbl => l_Token_tbl ,
438                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
439                   x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
440     l_mesg_token_tbl := l_out_mesg_token_tbl;
441     x_return_status  := FND_API.G_RET_STS_ERROR;
442   END IF;
443 
444   IF (p_work_clearance_header_rec.SCHEDULED_ESTAB_START_DATE IS NULL) OR
445      (p_work_clearance_header_rec.SCHEDULED_ESTAB_END_DATE IS NULL) OR
446      (p_work_clearance_header_rec.SCHEDULED_REESTAB_START_DATE IS NULL) OR
447      (p_work_clearance_header_rec.SCHEDULED_REESTAB_END_DATE IS NULL)
448   THEN
449     l_out_mesg_token_tbl := l_mesg_token_tbl;
450     EAM_ERROR_MESSAGE_PVT.Add_Error_Token (
451                   p_message_name => 'EAM_CLEARANCE_DATES_REQUIRED' ,
452                   p_token_tbl => l_Token_tbl ,
453                   p_Mesg_Token_Tbl => l_Mesg_Token_Tbl ,
454                   x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl );
455     l_mesg_token_tbl := l_out_mesg_token_tbl;
456     x_return_status  := FND_API.G_RET_STS_ERROR;
457   END IF;
458 
459   IF p_work_clearance_header_rec.USER_ID IS NULL
460   THEN
461   l_out_mesg_token_tbl  := l_mesg_token_tbl;
462   EAM_ERROR_MESSAGE_PVT.Add_Error_Token
463             (  p_message_name => 'EAM_SAFETY_USERID_REQUIRED'
464               , p_token_tbl  => l_Token_tbl
465               , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
466               , x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl
467             );
468   l_mesg_token_tbl      := l_out_mesg_token_tbl;
469   x_return_status := FND_API.G_RET_STS_ERROR;
470   END IF;
471 
472   IF p_work_clearance_header_rec.RESPONSIBILITY_ID IS NULL
473   THEN
474   l_out_mesg_token_tbl  := l_mesg_token_tbl;
475   EAM_ERROR_MESSAGE_PVT.Add_Error_Token
476             (  p_message_name => 'EAM_SAFETY_RESPID_REQUIRED'
477               , p_token_tbl  => l_Token_tbl
478               , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
479               , x_Mesg_Token_Tbl => l_out_Mesg_Token_Tbl
480             );
481   l_mesg_token_tbl      := l_out_mesg_token_tbl;
482   x_return_status := FND_API.G_RET_STS_ERROR;
483   END IF;
484   x_Mesg_Token_Tbl := l_Mesg_Token_Tbl;
485   x_return_status := FND_API.G_RET_STS_SUCCESS;
486 END CHECK_REQUIRED;
487 
488 
489 END EAM_CLEARANCE_VALIDATE_PVT ;