DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_SAFETY_ASSET_NUMBER_PUB

Source


1 PACKAGE BODY EAM_SAFETY_ASSET_NUMBER_PUB  AS
2 /* $Header: EAMPSAFB.pls 120.0 2011/02/23 16:41:36 srkotika noship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2008 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMPSAFB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_SAFETY_ASSET_NUMBER_PUB
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  23-FEB-2011    srkotika     Initial Creation
21 ***************************************************************************/
22 
23 G_PKG_NAME CONSTANT VARCHAR2(30):= 'EAM_SAFETY_ASSET_NUMBER_PUB';
24 G_FILE_NAME CONSTANT VARCHAR2(12) := 'eampsafb.pls';
25 
26 /*Procedure to create or update asset/instance safety lookups-positional asset/lockout device*/
27 PROCEDURE CREATEUPDATE_ASSET_SAFETY_INFO
28 (
29     p_api_version                    IN           NUMBER
30    ,p_commit	    	             IN           VARCHAR2 := FND_API.G_FALSE
31    ,p_eAM_asset_safety_tbl           IN           EAM_SAFETY_ASSET_NUMBER_PUB.eam_asset_safety_info_tbl_type
32    ,x_return_status                  OUT  NOCOPY  VARCHAR2
33    ,x_msg_count		                 OUT  NOCOPY  NUMBER
34    ,x_msg_data	                     OUT  NOCOPY  VARCHAR2
35  ) IS
36    l_api_name                      CONSTANT VARCHAR2(30)   := 'CREATEUPDATE_ASSET_SAFETY_INFO';
37    l_api_version                   CONSTANT NUMBER         := 1.0;
38    l_debug_level                   NUMBER;
39    l_return_status           VARCHAR2(1);
40    l_error_count NUMBER:=0;
41    l_msg_count NUMBER;
42    l_msg_data  VARCHAR2(4000);
43    --l_inst_latitude_dd_value  NUMBER;
44    --l_inst_longitude_dd_value NUMBER;
45    l_create_update  VARCHAR2(1);
46    l_instance_number VARCHAR2(30);
47    TYPE l_instance_tbl_type IS TABLE OF VARCHAR2(1)
48      INDEX BY  VARCHAR2(32760);
49 	 l_instance_tbl   l_instance_tbl_type;
50 
51 
52 BEGIN
53 
54     SAVEPOINT CREATEUPDATE_ASSET_SAFETY_INFO;
55 
56     -- Standard call to check for call compatibility.
57      IF NOT FND_API.Compatible_API_Call (l_api_version,
58                                          p_api_version,
59                                          l_api_name   ,
60                                          G_PKG_NAME   )   THEN
61                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
62      END IF;
63 
64 	  -- Initialize API return status to success
65 		x_return_status := fnd_api.g_ret_sts_success;
66 
67    FND_MSG_PUB.initialize;
68 
69 
70   IF p_eAM_asset_safety_tbl.COUNT > 0 THEN
71 
72 	   FOR i in p_eAM_asset_safety_tbl.FIRST..p_eAM_asset_safety_tbl.LAST
73      LOOP
74 
75 	   BEGIN
76 
77 			IF p_eAM_asset_safety_tbl(i).instance_id IS NULL
78      			OR p_eAM_asset_safety_tbl(i).instance_id = FND_API.G_MISS_NUM  THEN
79 			      /*FND_MESSAGE.SET_NAME('CSI','CSI_ASSET_NOT_NULL');
80 	              FND_MSG_PUB.ADD;      */
81 		       x_return_status := FND_API.G_RET_STS_ERROR;
82 			   l_error_count:=l_error_count+1;
83                RAISE  FND_API.G_EXC_ERROR;
84 			END IF;
85 
86 			 /*validate Asset  */
87 	      EAM_SAFETY_ASSET_UTL_PKG.VALIDATE_INSTANCE_NUMBER
88 	        (p_instance_id => p_eAM_asset_safety_tbl(i).instance_id
89 		     	,x_instance_number => l_instance_number
90 		      ,x_create_update => l_create_update
91 		      ,x_return_status => l_return_status
92 	     	  ,x_msg_count     => l_msg_count
93           ,x_msg_data      => l_msg_data
94 	     	);
95 
96 			IF(l_return_status<>'S') THEN
97 			  l_error_count:=l_error_count+1;
98 			  RAISE  FND_API.G_EXC_ERROR;
99 			END IF;
100 
101 	    /*This procedure is called to validate the safety type and lookup values*/
102 		  EAM_SAFETY_ASSET_UTL_PKG.VALIDATE_SAFETY_INFO
103 		   (p_eAM_asset_safety_rec  => p_eAM_asset_safety_tbl(i)
104 		    ,x_return_status => l_return_status
105 		    ,x_msg_count     => l_msg_count
106         ,x_msg_data      => l_msg_data
107 		    );
108 
109 			IF(l_return_status<>'S') THEN
110 			  l_error_count:=l_error_count+1;
111 			  RAISE  FND_API.G_EXC_ERROR;
112 			END IF;
113 
114 			IF l_create_update = 'U' THEN
115 
116 		           EAM_SAFETY_ASSET_NUMBER_PVT.UPDATE_ROW
117                     ( p_eAM_asset_safety_rec    => p_eAM_asset_safety_tbl(i)
118                      ,x_return_status => l_return_status
119                     );
120 
121 		             	IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
122                        l_msg_data:=fnd_msg_pub.get(fnd_msg_pub.G_LAST, FND_API.G_FALSE);
123 				               l_error_count:=l_error_count+1;
124 		                  --  Continue processing other records
125 				               RAISE  FND_API.G_EXC_ERROR;
126                    END IF;
127       END IF;
128 	 /*l_create_update = 'C' indicates that asset number safety lookup values are being entered for the first time for asset/instance */
129 		  IF l_create_update = 'C' THEN
130 
131 		          EAM_SAFETY_ASSET_NUMBER_PVT.INSERT_ROW
132                     ( p_eAM_asset_safety_rec    => p_eAM_asset_safety_tbl(i)
133                     ,x_return_status => l_return_status
134                     );
135 
136 			        IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
137                        l_msg_data:=fnd_msg_pub.get(fnd_msg_pub.G_LAST, FND_API.G_FALSE);
138 				               l_error_count:=l_error_count+1;
139                        RAISE  FND_API.G_EXC_ERROR;
140 		          END IF;
141       END IF;
142 
143         EXCEPTION
144            	 WHEN FND_API.G_EXC_ERROR THEN
145               NULL;
146         END;
147       END LOOP;
148    END IF;
149 
150 
151 	IF l_error_count > 0 THEN
152 	   RAISE FND_API.G_EXC_ERROR;
153     END IF;
154 
155 	COMMIT WORK;
156 
157 
158   EXCEPTION
159 
160       WHEN FND_API.G_EXC_ERROR THEN
161                 x_return_status := FND_API.G_RET_STS_ERROR ;
162                 ROLLBACK TO CREATEUPDATE_ASSET_SAFETY_INFO;
163                 FND_MSG_PUB.Count_And_Get
164                 (       p_encoded => FND_API.G_FALSE,
165           				p_count => x_msg_count,
166                         p_data  => x_msg_data
167                 );
168 
169         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
170                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
171                 ROLLBACK TO CREATEUPDATE_ASSET_SAFETY_INFO;
172                 FND_MSG_PUB.Count_And_Get
173                 (       p_encoded => FND_API.G_FALSE,
174          				p_count => x_msg_count,
175                         p_data  => x_msg_data
176                 );
177 
178         WHEN OTHERS THEN
179                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
180                 ROLLBACK TO CREATEUPDATE_ASSET_SAFETY_INFO;
181                 IF      FND_MSG_PUB.Check_Msg_Level
182                         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
183                 THEN
184                 FND_MSG_PUB.Add_Exc_Msg
185                 (G_PKG_NAME,
186              l_api_name
187                 );
188                 END IF;
189                 FND_MSG_PUB.Count_And_Get
190                 (       p_encoded => FND_API.G_FALSE,
191          				p_count                 =>      x_msg_count,
192                         p_data                  =>      x_msg_data
193                 );
194 
195 END CREATEUPDATE_ASSET_SAFETY_INFO;
196 
197 
198 END EAM_SAFETY_ASSET_NUMBER_PUB;