DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_PROCESS_SAFETY_PUB

Source


1 PACKAGE BODY EAM_PROCESS_SAFETY_PUB AS
2   /* $Header: EAMPSAPB.pls 120.2 2011/07/20 13:01:37 somitra noship $ */
3   /***************************************************************************
4   --
5   --  Copyright (c) 2011 Oracle Corporation, Redwood Shores, CA, USA
6   --  All rights reserved.
7   --
8   --  FILENAME: EAMPSAPB.pls
9   --
10   --  DESCRIPTION: Body of package EAM_PROCESS_SAFETY_PUB
11   --
12   --  NOTES
13   --
14   --  HISTORY
15   --
16   --
17   ***************************************************************************/
18   -- g_debug_flag            VARCHAR2(1) := 'N';
19 
20 G_PKG_NAME CONSTANT VARCHAR2(30)  := 'EAM_PROCESS_SAFETY_PUB';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'EAMPSAPB.pls';
22 
23 /**************************************************************************
24 * Procedure :     PROCESS_ISOLATION
25 * Purpose :       This  will call the private API for processing isolation
26 ***************************************************************************/
27 
28 PROCEDURE PROCESS_ISOLATION
29         (  p_bo_identifier           IN  VARCHAR2 := 'EAM'
30          , p_api_version_number      IN  NUMBER := 1.0
31          , p_init_msg_list           IN  BOOLEAN := FALSE
32          , p_commit                  IN  VARCHAR2
33          , p_iso_header_rec          IN EAM_PROCESS_SAFETY_PUB.eam_iso_header_rec_type
34          , p_establish_iso_tbl       IN EAM_PROCESS_SAFETY_PUB.eam_establishment_tbl_type
35 	       , p_re_establish_iso_tbl    IN EAM_PROCESS_SAFETY_PUB.eam_establishment_tbl_type
36          , p_isolated_asset_tbl      IN  EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
37          , p_debug                   IN  VARCHAR2
38          , p_output_dir              IN  VARCHAR2
39          , p_debug_filename          IN  VARCHAR2
40          , p_debug_file_mode         IN  VARCHAR2
41          , x_isolation_id            OUT NOCOPY NUMBER
42          , x_return_status           OUT NOCOPY VARCHAR2
43          , x_msg_count               OUT NOCOPY NUMBER
44          )   IS
45 
46            l_api_version                CONSTANT NUMBER       := 1.0;
47          --  lx_iso_header_rec     EAM_PROCESS_SAFETY_PUB.eam_iso_header_rec_type;
48            l_isolation_id        NUMBER;
49 
50            l_debug                 VARCHAR2(1) := p_debug;
51            l_output_dir            VARCHAR2(512) := p_output_dir;
52            l_debug_filename        VARCHAR2(512) := p_debug_filename;
53            l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
54            l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
55            l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
56 
57 
58            l_return_status         VARCHAR2(1);
59            l_msg_count             NUMBER;
60            l_msg_data              VARCHAR2(240);
61 
62 
63 
64  BEGIN
65 
66     IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
67           RAISE FND_API.G_EXC_ERROR;
68     END IF;
69 
70     IF p_init_msg_list THEN
71             EAM_ERROR_MESSAGE_PVT.Initialize;
72     END IF;
73 
74     SAVEPOINT EAM_PROCESS_ISOLATION;
75 
76       EAM_PROCESS_WO_PVT.Set_Debug(l_debug);
77 
78             IF l_debug = 'Y'
79             THEN
80                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
81                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
82                 (  p_debug_filename     => p_debug_filename
83                 ,  p_output_dir         => p_output_dir
84                 ,  p_debug_file_mode    => l_debug_file_mode
85                 ,  x_return_status      => l_return_status
86                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
87                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
88                  );
89                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
90 
91                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
92                 THEN
93                     EAM_PROCESS_WO_PVT.Set_Debug('N');
94                 END IF;
95             END IF;
96 
97     IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug(' Calling EAM_PROCESS_SAFETY_PUB.PROCESS_ISOLATION'); end if;
98 
99        EAM_PROCESS_ISOLATION_PVT.PROCESS_ISOLATION(
100            p_bo_identifier             => p_bo_identifier
101          , p_api_version_number      	 => l_api_version
102          , p_init_msg_list           	 => TRUE
103          , p_commit                  	 => p_commit
104          , p_iso_header_rec  	         => p_iso_header_rec
105          , p_establish_iso_tbl         => p_establish_iso_tbl
106          , p_re_establish_iso_tbl      => p_re_establish_iso_tbl
107          , p_isolated_asset_tbl        => p_isolated_asset_tbl
108          , x_isolation_id  	           => l_isolation_id
109          , x_return_status           	 => l_return_status
110          , x_msg_count               	 => l_msg_count
111          , p_debug                     => l_debug
112          , p_output_dir             	 => l_output_dir
113          , p_debug_filename          	 => l_debug_filename
114          , p_debug_file_mode        	 => l_debug_file_mode
115      );
116 
117      x_isolation_id :=l_isolation_id;
118      x_return_status :=l_return_status;
119 
120      IF l_return_status <> FND_API.G_RET_STS_SUCCESS
121         THEN
122          x_return_status := FND_API.G_RET_STS_ERROR;
123          x_msg_count :=l_msg_count;
124      END IF;
125 
126 EXCEPTION
127    WHEN OTHERS THEN
128        x_return_status := FND_API.G_RET_STS_ERROR;
129        x_msg_count :=l_msg_count;
130     IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
131         THEN
132             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
133             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
134     END IF;
135 
136 END PROCESS_ISOLATION;
137 
138 
139 /**************************************************************************
140   * Procedure:     PROCESS_WORK_CLEARANCE
141   * Purpose:       This  will call the private API for processing  of Work Clearance
142   ***************************************************************************/
143 PROCEDURE PROCESS_WORK_CLEARANCE
144         (   p_bo_identifier           IN       VARCHAR2  := 'EAM'
145           , p_api_version_number      IN       NUMBER    := 1.0
146           , p_init_msg_list           IN       BOOLEAN   := FALSE
147           , p_commit                  IN       VARCHAR2
148           , p_work_clearance_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type
149           , p_clearance_establish_tbl  IN  EAM_PROCESS_SAFETY_PUB.eam_establishment_tbl_type
150           , p_clearance_re_estabish_tbl IN  EAM_PROCESS_SAFETY_PUB.eam_establishment_tbl_type
151           , p_clearance_wo_asso_tbl IN  EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
152           , p_clearance_permit_asso_tbl    IN  EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
153           , p_debug                   IN       VARCHAR2
154           , p_output_dir              IN       VARCHAR2
155           , p_debug_filename          IN       VARCHAR2
156           , p_debug_file_mode         IN       VARCHAR2
157           , x_clearance_id            OUT      NOCOPY    NUMBER
158           , x_return_status           OUT      NOCOPY    VARCHAR2
159           , x_msg_count               OUT      NOCOPY    NUMBER
160         ) IS
161 
162           l_api_version                CONSTANT NUMBER       := 1.0;
163           l_work_clearance_header_rec     EAM_PROCESS_SAFETY_PUB.eam_clearance_header_rec_type;
164 
165            l_debug                 VARCHAR2(1) := p_debug;
166            l_output_dir            VARCHAR2(512) := p_output_dir;
167            l_debug_filename        VARCHAR2(512) := p_debug_filename;
168            l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
169            l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
170            l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
171 
172 
173            l_return_status         VARCHAR2(1);
174            l_msg_count             NUMBER;
175            l_msg_data              VARCHAR2(240);
176 
177 BEGIN
178 
179  IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
180           RAISE FND_API.G_EXC_ERROR;
181        END IF;
182 
183       IF p_init_msg_list
184         THEN
185             EAM_ERROR_MESSAGE_PVT.Initialize;
186       END IF;
187 
188       SAVEPOINT PROCESS_WORK_CLEARANCE;
189 
190       EAM_PROCESS_WO_PVT.Set_Debug(l_debug);
191 
192             IF l_debug = 'Y'
193             THEN
194                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
195                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
196                 (  p_debug_filename     => p_debug_filename
197                 ,  p_output_dir         => p_output_dir
198                 ,  p_debug_file_mode    => l_debug_file_mode
199                 ,  x_return_status      => l_return_status
200                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
201                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
202                  );
203                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
204 
205                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
206                 THEN
207                     EAM_PROCESS_WO_PVT.Set_Debug('N');
208                 END IF;
209             END IF;
210 
211       IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug(' Inside EAM_PROCESS_SAFETY_PUB.PROCESS_WORK_CLEARANCE'); end if;
212 
213   EAM_PROCESS_CLEARANCE_PVT.PROCESS_WORK_CLEARANCE(
214            p_bo_identifier             => p_bo_identifier
215          , p_api_version_number      	 => l_api_version
216          , p_init_msg_list           	 => TRUE
217          , p_commit                  	 => p_commit
218          , p_work_clearance_header_rec  	 => p_work_clearance_header_rec
219          , p_clearance_establishment_tbl => p_clearance_establish_tbl
220          , p_clearance_re_estabish_tbl => p_clearance_re_estabish_tbl
221          , p_clearance_workorder_asso_tbl  	 => p_clearance_wo_asso_tbl
222          , p_clearance_permit_asso_tbl  	 => p_clearance_permit_asso_tbl
223          , x_work_clearance_header_rec => l_work_clearance_header_rec
224          , x_return_status           	 => l_return_status
225          , x_msg_count               	 => l_msg_count
226          , p_debug                     => l_debug
227          , p_output_dir             	 => l_output_dir
228          , p_debug_filename          	 => l_debug_filename
229          , p_debug_file_mode        	 => l_debug_file_mode
230      );
231 
232      x_clearance_id :=l_work_clearance_header_rec.work_clearance_id;
233      x_return_status :=l_return_status;
234 
235      IF l_return_status <> FND_API.G_RET_STS_SUCCESS
236         THEN
237          x_return_status := FND_API.G_RET_STS_ERROR;
238          x_msg_count :=l_msg_count;
239      END IF;
240 
241 EXCEPTION
242    WHEN OTHERS THEN
243        x_return_status := FND_API.G_RET_STS_ERROR;
244        x_msg_count :=l_msg_count;
245     IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
246         THEN
247             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
248             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
249     END IF;
250  END PROCESS_WORK_CLEARANCE;
251 
252  /**************************************************************************
253 * Procedure:     COPY_WORK_CLEARANCE
254 * Purpose:        Procedure to copy work Clearance record.
255 *                 This procedure will call the private to process copy clearance
256 ***************************************************************************/
257 PROCEDURE COPY_WORK_CLEARANCE(
258           p_bo_identifier              IN  VARCHAR2 := 'EAM'
259          , p_api_version_number        IN  NUMBER   := 1.0
260          , p_init_msg_list             IN  BOOLEAN  := FALSE
261          , p_commit                    IN  VARCHAR2 := 'N'
262          , p_debug                     IN  VARCHAR2 := 'N'
263          , p_output_dir                IN  VARCHAR2 := NULL
264          , p_debug_filename            IN  VARCHAR2 := 'EAM_SAFETY_DEBUG.log'
265          , p_debug_file_mode           IN  VARCHAR2 := 'w'
266          , p_org_id                    IN  NUMBER
267          , px_clearance_id             IN  OUT NOCOPY   NUMBER
268          , x_return_status             OUT NOCOPY VARCHAR2
269          , x_msg_count                 OUT NOCOPY NUMBER
270         ) IS
271 
272          l_api_version                CONSTANT NUMBER       := 1.0;
273 
274         l_debug                 VARCHAR2(1) := p_debug;
275         l_output_dir            VARCHAR2(512) := p_output_dir;
276         l_debug_filename        VARCHAR2(512) := p_debug_filename;
277         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
278         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
279         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
280 
281 
282         l_return_status         VARCHAR2(1);
283         l_msg_count             NUMBER;
284 
285 BEGIN
286 
287       IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
288           RAISE FND_API.G_EXC_ERROR;
289        END IF;
290 
291       IF p_init_msg_list
292         THEN
293             EAM_ERROR_MESSAGE_PVT.Initialize;
294       END IF;
295 
296       SAVEPOINT COPY_WORK_CLEARANCE;
297 
298       EAM_PROCESS_WO_PVT.Set_Debug(l_debug);
299 
300             IF l_debug = 'Y'
301             THEN
302                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
303                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
304                 (  p_debug_filename     => p_debug_filename
305                 ,  p_output_dir         => p_output_dir
306                 ,  p_debug_file_mode    => l_debug_file_mode
307                 ,  x_return_status      => l_return_status
308                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
309                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
310                  );
311                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
312 
313                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
314                 THEN
315                     EAM_PROCESS_WO_PVT.Set_Debug('N');
316                 END IF;
317             END IF;
318 
319     IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug(' Calling EAM_PROCESS_PERMIT_PVT.COPY_WORK_PERMIT from  EAM_PROCESS_SAFETY_PUB'); end if;
320 
321       EAM_PROCESS_CLEARANCE_PVT.COPY_WORK_CLEARANCE(
322            p_bo_identifier             => p_bo_identifier
323          , p_api_version_number      	 => l_api_version
324          , p_init_msg_list           	 => TRUE
325          , p_commit                  	 => p_commit
326          , p_debug                     => l_debug
327          , p_output_dir             	 => l_output_dir
328          , p_debug_filename          	 => l_debug_filename
329          , p_debug_file_mode        	 => l_debug_file_mode
330          , p_org_id  	                 => p_org_id
331          , px_clearance_id  	         => px_clearance_id
332          , x_return_status           	 => l_return_status
333          , x_msg_count               	 => l_msg_count
334 
335      );
336 
337 
338      x_return_status :=l_return_status;
339 
340      IF l_return_status <> FND_API.G_RET_STS_SUCCESS
341         THEN
342          x_return_status := FND_API.G_RET_STS_ERROR;
343          x_msg_count :=l_msg_count;
344      END IF;
345 
346 EXCEPTION
347    WHEN OTHERS THEN
348    --    x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
349        x_return_status := FND_API.G_RET_STS_ERROR;
350        x_msg_count :=l_msg_count;
351     IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
352         THEN
353             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
354             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
355     END IF;
356 
357  END COPY_WORK_CLEARANCE;
358 
359 
360 /**************************************************************************
361 * Procedure:     PROCESS_WORK_PERMIT
362 * Purpose:        Procedure to process work permit record.
363 *                 This procedure will call the private procedure PROCESS_WORK_PERMIT
364 *                 in the EAM_PROCES_PERMIT_PVT API.
365 ***************************************************************************/
366  PROCEDURE  PROCESS_WORK_PERMIT
367         (  p_bo_identifier             IN  VARCHAR2 := 'EAM'
368          , p_api_version_number        IN  NUMBER   := 1.0
369          , p_init_msg_list             IN  BOOLEAN  := FALSE
370          , p_commit                    IN  VARCHAR2
371          , p_work_permit_header_rec    IN  EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type
372          , p_permit_wo_association_tbl IN  EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
373          , p_permit_clearance_asso_tbl IN  EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
374          , p_debug                     IN  VARCHAR2
375          , p_output_dir                IN  VARCHAR2
376          , p_debug_filename            IN  VARCHAR2
377          , p_debug_file_mode           IN  VARCHAR2
378          , x_permit_id                 OUT NOCOPY   NUMBER
379          , x_return_status             OUT NOCOPY VARCHAR2
380          , x_msg_count                 OUT NOCOPY NUMBER
381          ) IS
382 
383          l_api_version                CONSTANT NUMBER       := 1.0;
384          lx_work_permit_header_rec     EAM_PROCESS_SAFETY_PUB.eam_wp_header_rec_type;
385 
386         l_debug                 VARCHAR2(1) := p_debug;
387         l_output_dir            VARCHAR2(512) := p_output_dir;
388         l_debug_filename        VARCHAR2(512) := p_debug_filename;
389         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
390         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
391         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
392 
393 
394         l_return_status         VARCHAR2(1);
395         l_msg_count             NUMBER;
396         l_msg_data              VARCHAR2(240);
397 
398 BEGIN
399 
400        IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
401           RAISE FND_API.G_EXC_ERROR;
402        END IF;
403 
404       IF p_init_msg_list
405         THEN
406             EAM_ERROR_MESSAGE_PVT.Initialize;
407       END IF;
408 
409       SAVEPOINT EAM_PR_PROCESS_WORK_PERMIT;
410 
411       EAM_PROCESS_WO_PVT.Set_Debug(l_debug);
412 
413             IF l_debug = 'Y'
414             THEN
415                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
416                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
417                 (  p_debug_filename     => p_debug_filename
418                 ,  p_output_dir         => p_output_dir
419                 ,  p_debug_file_mode    => l_debug_file_mode
420                 ,  x_return_status      => l_return_status
421                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
422                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
423                  );
424                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
425 
426                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
427                 THEN
428                     EAM_PROCESS_WO_PVT.Set_Debug('N');
429                 END IF;
430             END IF;
431 
432     IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug(' Calling EAM_PROCESS_SAFETY_PUB.PROCESS_WORK_PERMIT from  EAM_PROCESS_SAFETY_PUB'); end if;
433 
434      EAM_PROCESS_PERMIT_PVT.PROCESS_WORK_PERMIT(
435            p_bo_identifier             => p_bo_identifier
436          , p_api_version_number      	 => l_api_version
437          , p_init_msg_list           	 => TRUE
438          , p_commit                  	 => p_commit
439          , p_work_permit_header_rec  	 => p_work_permit_header_rec
440          , p_permit_wo_association_tbl => p_permit_wo_association_tbl
441          , p_permit_clearance_asso_tbl => p_permit_clearance_asso_tbl
442          , x_work_permit_header_rec  	 => lx_work_permit_header_rec
443          , x_return_status           	 => l_return_status
444          , x_msg_count               	 => l_msg_count
445          , p_debug                     => l_debug
446          , p_output_dir             	 => l_output_dir
447          , p_debug_filename          	 => l_debug_filename
448          , p_debug_file_mode        	 => l_debug_file_mode
449      );
450 
451      x_permit_id :=lx_work_permit_header_rec.permit_id;
452      x_return_status :=l_return_status;
453 
454      IF l_return_status <> FND_API.G_RET_STS_SUCCESS
455         THEN
456          x_return_status := FND_API.G_RET_STS_ERROR;
457          x_msg_count :=l_msg_count;
458      END IF;
459 
460 EXCEPTION
461    WHEN OTHERS THEN
462        x_return_status := FND_API.G_RET_STS_ERROR;
463        x_msg_count :=l_msg_count;
464     IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
465         THEN
466             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
467             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
468     END IF;
469 
470 END PROCESS_WORK_PERMIT;
471 
472 /**************************************************************************
473 * Procedure:     COPY_WORK_PERMIT
474 * Purpose:        Procedure to copy work permit record.
475 *                 This procedure will call private the procedure PROCESS_WORK_PERMIT
476 *                 in the EAM_PROCES_PERMIT_PVT API.
477 ***************************************************************************/
478 PROCEDURE COPY_WORK_PERMIT(
479           p_bo_identifier              IN  VARCHAR2 := 'EAM'
480          , p_api_version_number        IN  NUMBER   := 1.0
481          , p_init_msg_list             IN  BOOLEAN  := FALSE
482          , p_commit                    IN  VARCHAR2
483          , p_debug                     IN  VARCHAR2
484          , p_output_dir                IN  VARCHAR2
485          , p_debug_filename            IN  VARCHAR2
486          , p_debug_file_mode           IN  VARCHAR2
487          , p_org_id                    IN  NUMBER
488          , px_permit_id                IN  OUT NOCOPY   NUMBER
489          , x_return_status             OUT NOCOPY VARCHAR2
490          , x_msg_count                 OUT NOCOPY NUMBER
491 )IS
492 
493         l_api_version                CONSTANT NUMBER       := 1.0;
494 
495         l_debug                 VARCHAR2(1) := p_debug;
496         l_output_dir            VARCHAR2(512) := p_output_dir;
497         l_debug_filename        VARCHAR2(512) := p_debug_filename;
498         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
499         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
500         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
501 
502 
503         l_return_status         VARCHAR2(1);
504         l_msg_count             NUMBER;
505 
506 BEGIN
507 
508   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
509           RAISE FND_API.G_EXC_ERROR;
510        END IF;
511 
512       IF p_init_msg_list
513         THEN
514             EAM_ERROR_MESSAGE_PVT.Initialize;
515       END IF;
516 
517       SAVEPOINT EAM_COPY_WORK_PERMIT;
518 
519       EAM_PROCESS_WO_PVT.Set_Debug(l_debug);
520 
521             IF l_debug = 'Y'
522             THEN
523                 l_out_mesg_token_tbl        := l_mesg_token_tbl;
524                 EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
525                 (  p_debug_filename     => p_debug_filename
526                 ,  p_output_dir         => p_output_dir
527                 ,  p_debug_file_mode    => l_debug_file_mode
528                 ,  x_return_status      => l_return_status
529                 ,  p_mesg_token_tbl     => l_mesg_token_tbl
530                 ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
531                  );
532                 l_mesg_token_tbl        := l_out_mesg_token_tbl;
533 
534                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
535                 THEN
536                     EAM_PROCESS_WO_PVT.Set_Debug('N');
537                 END IF;
538             END IF;
539 
540     IF EAM_PROCESS_WO_PVT.get_debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.write_debug(' Calling EAM_PROCESS_SAFETY_PUB.COPY_WORK_PERMIT from  EAM_PROCESS_SAFETY_PUB'); end if;
541 
542      EAM_PROCESS_PERMIT_PVT.COPY_WORK_PERMIT(
543            p_bo_identifier             => p_bo_identifier
544          , p_api_version_number      	 => l_api_version
545          , p_init_msg_list           	 => TRUE
546          , p_commit                  	 => p_commit
547          , p_debug                     => l_debug
548          , p_output_dir             	 => l_output_dir
549          , p_debug_filename          	 => l_debug_filename
550          , p_debug_file_mode        	 => l_debug_file_mode
551          , p_org_id  	                 => p_org_id
552          , px_permit_id  	             => px_permit_id
553          , x_return_status           	 => l_return_status
554          , x_msg_count               	 => l_msg_count
555 
556      );
557 
558 
559      x_return_status :=l_return_status;
560 
561      IF l_return_status <> FND_API.G_RET_STS_SUCCESS
562         THEN
563          x_return_status := FND_API.G_RET_STS_ERROR;
564          x_msg_count :=l_msg_count;
565      END IF;
566 
567 EXCEPTION
568    WHEN OTHERS THEN
569        x_return_status := FND_API.G_RET_STS_ERROR;
570        x_msg_count :=l_msg_count;
571     IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
572         THEN
573             EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
574             EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
575     END IF;
576 
577 
578 END COPY_WORK_PERMIT;
579 
580 /**************************************************************************
581 * Procedure:     PERMIT_CLEARANCE_ASSOCIATION
582 * Purpose :       This  will process permit clearance  association
583 ***************************************************************************/
584 PROCEDURE PERMIT_CLEARANCE_ASSOCIATION
585  (
586      p_bo_identifier             IN  VARCHAR2 := 'EAM'
587    , p_api_version_number        IN  NUMBER   := 1.0
588    , p_init_msg_list             IN  BOOLEAN  := FALSE
589    , p_commit                    IN  VARCHAR2
590    , p_permit_clearance_asso_tbl IN EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
591    , p_debug                     IN  VARCHAR2
592    , p_output_dir                IN  VARCHAR2
593    , p_debug_filename            IN  VARCHAR2
594    , p_debug_file_mode           IN  VARCHAR2
595    , x_return_status             OUT NOCOPY 	VARCHAR2
596    , x_msg_count                 OUT NOCOPY NUMBER
597   )IS
598         l_api_version           CONSTANT NUMBER       := 1.0;
599         l_debug                 VARCHAR2(1) := p_debug;
600         l_output_dir            VARCHAR2(512) := p_output_dir;
601         l_debug_filename        VARCHAR2(512) := p_debug_filename;
602         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
603 
604         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
605         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
606         l_return_status         VARCHAR2(1);
607         l_msg_count             NUMBER;
608 BEGIN
609   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
610           RAISE FND_API.G_EXC_ERROR;
611        END IF;
612 
613       IF p_init_msg_list
614         THEN
615             EAM_ERROR_MESSAGE_PVT.Initialize;
616       END IF;
617 
618 	SAVEPOINT PERMIT_CLEARANCE_ASSOCIATION;
619 
620   IF l_debug = 'Y'
621           THEN
622               l_out_mesg_token_tbl        := l_mesg_token_tbl;
623               EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
624               (  p_debug_filename     => p_debug_filename
625               ,  p_output_dir         => p_output_dir
626               ,  p_debug_file_mode    => l_debug_file_mode
627               ,  x_return_status      => l_return_status
628               ,  p_mesg_token_tbl     => l_mesg_token_tbl
629               ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
630                );
631               l_mesg_token_tbl        := l_out_mesg_token_tbl;
632 
633               IF l_return_status <> FND_API.G_RET_STS_SUCCESS
634               THEN
635                   EAM_PROCESS_WO_PVT.Set_Debug('N');
636               END IF;
637     END IF;
638 
639 	EAM_SAFETY_ASSOCIATION_PVT.PERMIT_CLEARANCE_ASSOCIATION
640         (
641           p_permit_clearance_asso_tbl  => p_permit_clearance_asso_tbl
642          , x_mesg_token_tbl             => l_out_Mesg_Token_Tbl
643          , x_return_status              => l_return_status
644        );
645 
646 
647       IF (p_commit = FND_API.G_TRUE) THEN
648          COMMIT;
649       END IF;
650 
651      x_return_status := l_return_status;
652 EXCEPTION
653       WHEN fnd_api.g_exc_unexpected_error THEN
654              ROLLBACK TO PERMIT_CLEARANCE_ASSOCIATION;
655             x_return_status       := FND_API.G_RET_STS_ERROR;
656             x_msg_count := EAM_ERROR_MESSAGE_PVT.Get_Message_Count;
657 
658             IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
659             THEN
660                 EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
661                 EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
662             END IF;
663 
664       WHEN OTHERS THEN
665 
666             ROLLBACK TO PERMIT_CLEARANCE_ASSOCIATION;
667             x_return_status := FND_API.G_RET_STS_ERROR;
668             IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
669                     THEN
670                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
671                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
672                 END IF;
673 
674 END PERMIT_CLEARANCE_ASSOCIATION;
675 
676 /**************************************************************************
677 * Procedure:     CLEARANCE_WO_ASSOCIATION
678 * Purpose :       This  will process clearance work order association
679 ***************************************************************************/
680 PROCEDURE CLEARANCE_WO_ASSOCIATION
681  (   p_bo_identifier             IN  VARCHAR2 := 'EAM'
682    , p_api_version_number        IN  NUMBER   := 1.0
683    , p_init_msg_list             IN  BOOLEAN  := FALSE
684    , p_commit                    IN  VARCHAR2
685    , p_clearance_wo_asso_tbl     IN EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
686    , p_debug                     IN  VARCHAR2
687    , p_output_dir                IN  VARCHAR2
688    , p_debug_filename            IN  VARCHAR2
689    , p_debug_file_mode           IN  VARCHAR2
690    , x_return_status             OUT NOCOPY VARCHAR2
691    , x_msg_count                 OUT NOCOPY NUMBER
692   )IS
693    -- l_return_status         VARCHAR2(1);
694   --  l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
695 
696 
697         l_api_version           CONSTANT NUMBER       := 1.0;
698         l_debug                 VARCHAR2(1) := p_debug;
699         l_output_dir            VARCHAR2(512) := p_output_dir;
700         l_debug_filename        VARCHAR2(512) := p_debug_filename;
701         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
702 
703         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
704         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
705         l_return_status         VARCHAR2(1);
706         l_msg_count             NUMBER;
707 
708 BEGIN
709 
710   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
711           RAISE FND_API.G_EXC_ERROR;
712        END IF;
713 
714       IF p_init_msg_list
715         THEN
716             EAM_ERROR_MESSAGE_PVT.Initialize;
717       END IF;
718 
719 	SAVEPOINT CLEARANCE_WO_ASSOCIATION;
720 
721   IF l_debug = 'Y'
722           THEN
723               l_out_mesg_token_tbl        := l_mesg_token_tbl;
724               EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
725               (  p_debug_filename     => p_debug_filename
726               ,  p_output_dir         => p_output_dir
727               ,  p_debug_file_mode    => l_debug_file_mode
728               ,  x_return_status      => l_return_status
729               ,  p_mesg_token_tbl     => l_mesg_token_tbl
730               ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
731                );
732               l_mesg_token_tbl        := l_out_mesg_token_tbl;
733 
734               IF l_return_status <> FND_API.G_RET_STS_SUCCESS
735               THEN
736                   EAM_PROCESS_WO_PVT.Set_Debug('N');
737               END IF;
738     END IF;
739 
740 	EAM_SAFETY_ASSOCIATION_PVT.CLEARANCE_WO_ASSOCIATION
741         (
742           p_clearance_workorder_asso_tbl  => p_clearance_wo_asso_tbl
743          , x_mesg_token_tbl             => l_out_Mesg_Token_Tbl
744          , x_return_status              => l_return_status
745        );
746 
747 	 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
748               RAISE  fnd_api.g_exc_unexpected_error;
749        END IF;
750 
751 	IF (p_commit = FND_API.G_TRUE) THEN
752          COMMIT;
753       END IF;
754 
755    x_return_status := l_return_status;
756   EXCEPTION
757       WHEN fnd_api.g_exc_unexpected_error THEN
758            ROLLBACK TO CLEARANCE_WO_ASSOCIATION;
759             x_return_status := FND_API.G_RET_STS_ERROR;
760 
761             IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
762                     THEN
763                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
764                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
765             END IF;
766 
767       WHEN OTHERS THEN
768 
769             ROLLBACK TO CLEARANCE_WO_ASSOCIATION;
770             x_return_status := FND_API.G_RET_STS_ERROR;
771 
772             IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
773                     THEN
774                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
775                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
776             END IF;
777 
778 END CLEARANCE_WO_ASSOCIATION;
779 
780 
781 /************************************************************
782 * Procedure:     PERMIT_WORK_ORDER_ASSOCIATION
783 * Purpose :       This  will process permit work order association
784 ************************************************************/
785 PROCEDURE  PERMIT_WORK_ORDER_ASSOCIATION
786 (
787      p_bo_identifier             IN  VARCHAR2 := 'EAM'
788    , p_api_version_number        IN  NUMBER   := 1.0
789    , p_init_msg_list             IN  BOOLEAN  := FALSE
790    , p_commit                    IN  VARCHAR2
791    , p_permit_wo_association_tbl         IN     EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
792    , p_debug                     IN  VARCHAR2
793    , p_output_dir                IN  VARCHAR2
794    , p_debug_filename            IN  VARCHAR2
795    , p_debug_file_mode           IN  VARCHAR2
796    , x_return_status             OUT NOCOPY 	VARCHAR2
797    , x_msg_count                 OUT NOCOPY NUMBER
798 )IS
799 
800         l_api_version           CONSTANT NUMBER       := 1.0;
801         l_debug                 VARCHAR2(1) := p_debug;
802         l_output_dir            VARCHAR2(512) := p_output_dir;
803         l_debug_filename        VARCHAR2(512) := p_debug_filename;
804         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
805 
806         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
807         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
808         l_return_status         VARCHAR2(1);
809         l_msg_count             NUMBER;
810 
811 BEGIN
812 
813 	IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
814           RAISE FND_API.G_EXC_ERROR;
815        END IF;
816 
817       IF p_init_msg_list
818         THEN
819             EAM_ERROR_MESSAGE_PVT.Initialize;
820       END IF;
821 
822 	SAVEPOINT PERMIT_WORK_ORDER_ASSOCIATION;
823 
824   IF l_debug = 'Y'
825           THEN
826               l_out_mesg_token_tbl        := l_mesg_token_tbl;
827               EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
828               (  p_debug_filename     => p_debug_filename
829               ,  p_output_dir         => p_output_dir
830               ,  p_debug_file_mode    => l_debug_file_mode
831               ,  x_return_status      => l_return_status
832               ,  p_mesg_token_tbl     => l_mesg_token_tbl
833               ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
834                );
835               l_mesg_token_tbl        := l_out_mesg_token_tbl;
836 
837               IF l_return_status <> FND_API.G_RET_STS_SUCCESS
838               THEN
839                   EAM_PROCESS_WO_PVT.Set_Debug('N');
840               END IF;
841     END IF;
842 
843 
844 	EAM_SAFETY_ASSOCIATION_PVT.PERMIT_WORK_ORDER_ASSOCIATION
845         (
846           p_permit_wo_association_tbl  => p_permit_wo_association_tbl
847          , x_mesg_token_tbl             => l_out_Mesg_Token_Tbl
848          , x_return_status              => l_return_status
849        );
850 
851       IF (p_commit = FND_API.G_TRUE) THEN
852          COMMIT;
853       END IF;
854 
855       x_return_status := l_return_status;
856   EXCEPTION
857       WHEN fnd_api.g_exc_unexpected_error THEN
858            ROLLBACK TO PERMIT_WORK_ORDER_ASSOCIATION;
859             x_return_status := FND_API.G_RET_STS_ERROR;
860              IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
861                     THEN
862                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
863                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
864             END IF;
865 
866       WHEN OTHERS THEN
867             ROLLBACK TO PERMIT_WORK_ORDER_ASSOCIATION;
868             x_return_status := FND_API.G_RET_STS_ERROR;
869              IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
870                     THEN
871                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
872                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
873             END IF;
874 
875 
876 END PERMIT_WORK_ORDER_ASSOCIATION;
877 
878 
879 /************************************************************
880 * Procedure:     ASSET_ISOLATION_ASSOCIATION
881 * Purpose :       This  will process permit work order association
882 ************************************************************/
883 PROCEDURE  ASSET_ISOLATION_ASSOCIATION
884 (
885      p_bo_identifier             IN  VARCHAR2 := 'EAM'
886    , p_api_version_number        IN  NUMBER   := 1.0
887    , p_init_msg_list             IN  BOOLEAN  := FALSE
888    , p_commit                    IN  VARCHAR2 := 'N'
889    , p_isolated_assets_tbl              IN     EAM_PROCESS_SAFETY_PUB.eam_safety_assoc_tbl_type
890    , p_debug                     IN  VARCHAR2 := 'N'
891    , p_output_dir                IN  VARCHAR2 := NULL
892    , p_debug_filename            IN  VARCHAR2 := 'EAM_SAFETY_DEBUG.log'
893    , p_debug_file_mode           IN  VARCHAR2 := 'w'
894    , x_return_status                    OUT NOCOPY 	VARCHAR2
895    , x_msg_count               OUT NOCOPY NUMBER
896 )IS
897 
898         l_api_version           CONSTANT NUMBER       := 1.0;
899         l_debug                 VARCHAR2(1) := p_debug;
900         l_output_dir            VARCHAR2(512) := p_output_dir;
901         l_debug_filename        VARCHAR2(512) := p_debug_filename;
902         l_debug_file_mode       VARCHAR2(512) := p_debug_file_mode;
903 
904         l_Mesg_Token_Tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
905         l_out_mesg_token_tbl    EAM_ERROR_MESSAGE_PVT.mesg_token_tbl_type;
906         l_return_status         VARCHAR2(1);
907         l_msg_count             NUMBER;
908 
909 BEGIN
910 
911   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version_number, G_PKG_NAME, G_FILE_NAME) THEN
912           RAISE FND_API.G_EXC_ERROR;
913        END IF;
914 
915       IF p_init_msg_list
916         THEN
917             EAM_ERROR_MESSAGE_PVT.Initialize;
918       END IF;
919 
920 	SAVEPOINT ASSET_ISOLATION_ASSOCIATION;
921 
922   IF l_debug = 'Y'
923           THEN
924               l_out_mesg_token_tbl        := l_mesg_token_tbl;
925               EAM_ERROR_MESSAGE_PVT.Open_Debug_Session
926               (  p_debug_filename     => p_debug_filename
927               ,  p_output_dir         => p_output_dir
928               ,  p_debug_file_mode    => l_debug_file_mode
929               ,  x_return_status      => l_return_status
930               ,  p_mesg_token_tbl     => l_mesg_token_tbl
931               ,  x_mesg_token_tbl     => l_out_mesg_token_tbl
932                );
933               l_mesg_token_tbl        := l_out_mesg_token_tbl;
934 
935               IF l_return_status <> FND_API.G_RET_STS_SUCCESS
936               THEN
937                   EAM_PROCESS_WO_PVT.Set_Debug('N');
938               END IF;
939     END IF;
940 
941 	EAM_SAFETY_ASSOCIATION_PVT.ASSET_ISOLATION_ASSOCIATION
942         (
943           p_isolated_assets_tbl   	=> p_isolated_assets_tbl
944          , x_mesg_token_tbl             => l_out_Mesg_Token_Tbl
945          , x_return_status              => l_return_status
946        );
947 
948       IF (p_commit = FND_API.G_TRUE) THEN
949          COMMIT;
950       END IF;
951 
952        x_return_status := l_return_status;
953 
954 EXCEPTION
955       WHEN fnd_api.g_exc_unexpected_error THEN
956             ROLLBACK TO ASSET_ISOLATION_ASSOCIATION;
957             x_return_status := FND_API.G_RET_STS_ERROR;
958              IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
959                     THEN
960                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
961                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
962             END IF;
963 
964       WHEN OTHERS THEN
965             ROLLBACK TO ASSET_ISOLATION_ASSOCIATION;
966             x_return_status := FND_API.G_RET_STS_ERROR;
967              IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y'
968                     THEN
969                         EAM_ERROR_MESSAGE_PVT.Dump_Message_List;
970                         EAM_ERROR_MESSAGE_PVT.Close_Debug_Session;
971             END IF;
972 
973 END ASSET_ISOLATION_ASSOCIATION;
974 
975 END EAM_PROCESS_SAFETY_PUB;