[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;