DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_COLUMN_MAPS_PVT

Source


1 PACKAGE BODY CN_COLUMN_MAPS_PVT as
2 /* $Header: cnvcmapb.pls 120.4 2005/09/13 09:32:07 apink noship $ */
3 
4 G_PKG_NAME        CONSTANT VARCHAR2(30) := 'CN_COLUMN_MAPS_PVT';
5 G_LAST_UPDATE_DATE          	DATE    := sysdate;
6 G_LAST_UPDATED_BY           	NUMBER  := fnd_global.user_id;
7 G_CREATION_DATE             	DATE    := sysdate;
8 G_CREATED_BY                	NUMBER  := fnd_global.user_id;
9 G_LAST_UPDATE_LOGIN        	NUMBER  := fnd_global.login_id;
10 
11 -----------------------------------------------------------------------------+
12 -- Procedure   : insert_row
13 -----------------------------------------------------------------------------+
14 PROCEDURE insert_row
15   (
16    p_api_version            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    x_return_status         OUT NOCOPY VARCHAR2,
21    x_msg_count             OUT NOCOPY NUMBER,
22    x_msg_data              OUT NOCOPY VARCHAR2,
23    p_destination_column_id  IN NUMBER,
24    p_table_map_id           IN NUMBER,
25    p_expression             IN VARCHAR2,
26    p_editable               IN VARCHAR2,
27    p_modified               IN VARCHAR2,
28    p_update_clause          IN VARCHAR2,
29    p_calc_ext_table_id      IN NUMBER,
30    p_org_id                 IN NUMBER,
31    x_col_map_id          IN OUT NOCOPY NUMBER) IS
32 
33      l_api_name              CONSTANT VARCHAR2(30) := 'insert_row';
34      l_api_version           CONSTANT NUMBER  := 1.0;
35      l_rowid                 ROWID;
36      l_column_map_id         NUMBER;
37 
38 BEGIN
39    -- Standard Start of API savepoint
40    SAVEPOINT insert_row_sv;
41    -- Standard call to check for call compatibility.
42    IF NOT FND_API.Compatible_API_Call ( l_api_version ,
43                                         p_api_version ,
44                                         l_api_name,
45                                         G_PKG_NAME ) THEN
46       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47    END IF;
48    -- Initialize message list if p_init_msg_list is set to TRUE.
49    IF FND_API.to_Boolean( p_init_msg_list ) THEN
50       FND_MSG_PUB.initialize;
51    END IF;
52    --  Initialize API return status to success
53    x_return_status := FND_API.G_RET_STS_SUCCESS;
54    -- API Body Begin
55 
56 
57    cn_column_maps_pkg.Insert_Row
58      (x_rowid                 => l_rowid,
59       x_column_map_id         => l_column_map_id,
60       x_destination_column_id => p_destination_column_id,
61       x_table_map_id          => p_table_map_id,
62       x_expression            => p_expression,
63       x_editable              => p_editable,
64       x_modified              => p_modified,
65       x_update_clause         => p_update_clause,
66       x_calc_ext_table_id     => p_calc_ext_table_id,
67       x_creation_date         => G_CREATION_DATE,
68       x_created_by            => G_CREATED_BY,
69       X_org_id                => p_org_id);
70 
71       x_col_map_id := l_column_map_id;
72 
73    -- End of API body.
74    -- Standard check of p_commit.
75    IF FND_API.To_Boolean( p_commit ) THEN
76       COMMIT WORK;
77    END IF;
78    -- Standard call to get message count and if count is 1, get message info.
79    FND_MSG_PUB.Count_And_Get
80      (p_count                 =>      x_msg_count             ,
81      p_data                   =>      x_msg_data              ,
82      p_encoded                =>      FND_API.G_FALSE         );
83 
84 EXCEPTION
85    WHEN FND_API.G_EXC_ERROR THEN
86       ROLLBACK TO insert_row_sv;
87       x_return_status := FND_API.G_RET_STS_ERROR ;
88       FND_MSG_PUB.Count_And_Get(
89            p_count   =>  x_msg_count ,
90            p_data    =>  x_msg_data  ,
91            p_encoded => FND_API.G_FALSE);
92    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
93       ROLLBACK TO insert_row_sv;
94       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
95       FND_MSG_PUB.Count_And_Get(
96            p_count   =>  x_msg_count ,
97            p_data    =>  x_msg_data   ,
98            p_encoded => FND_API.G_FALSE);
99    WHEN OTHERS THEN
100       ROLLBACK TO insert_row_sv;
101       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
102       IF FND_MSG_PUB.Check_Msg_Level(
103          FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
104          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
105       END IF;
106       FND_MSG_PUB.Count_And_Get(
107            p_count   =>  x_msg_count ,
108            p_data    =>  x_msg_data  ,
109 				p_encoded => FND_API.G_FALSE);
110 END insert_row;
111 
112 -----------------------------------------------------------------------------+
113 -- Procedure   : update_row
114 -----------------------------------------------------------------------------+
115 PROCEDURE update_row
116   (
117    p_api_version   	    IN NUMBER,
118    p_init_msg_list          IN VARCHAR2  := FND_API.G_FALSE,
119    p_commit                 IN VARCHAR2  := FND_API.G_FALSE,
120    p_validation_level       IN NUMBER    := FND_API.G_VALID_LEVEL_FULL,
121    x_return_status         OUT NOCOPY VARCHAR2,
122    x_msg_count             OUT NOCOPY NUMBER,
123    x_msg_data              OUT NOCOPY VARCHAR2,
124    p_column_map_id          IN NUMBER,
125    p_destination_column_id  IN NUMBER,
126    p_table_map_id           IN NUMBER,
127    p_expression             IN VARCHAR2,
128    p_editable               IN VARCHAR2,
129    p_modified               IN VARCHAR2,
130    p_update_clause          IN VARCHAR2,
131    p_calc_ext_table_id      IN NUMBER,
132    p_object_version_number  IN OUT NOCOPY NUMBER,
133    p_org_id IN NUMBER) IS
134 
135       l_api_name               CONSTANT VARCHAR2(30) := 'update_row';
136       l_api_version            CONSTANT NUMBER       := 1.0;
137       l_object_version_number  cn_table_maps.object_version_number%TYPE;
138 
139       CURSOR l_ovn_csr IS
140 	 SELECT object_version_number
141 	   FROM cn_column_maps
142 	   WHERE column_map_id = p_column_map_id
143        and org_id = p_org_id;
144 
145 BEGIN
146    -- Standard Start of API savepoint
147    SAVEPOINT update_row_sv;
148    -- Standard call to check for call compatibility.
149    IF NOT FND_API.Compatible_API_Call ( l_api_version ,
150                                         p_api_version ,
151                                         l_api_name,
152                                         G_PKG_NAME ) THEN
153       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
154    END IF;
155    -- Initialize message list if p_init_msg_list is set to TRUE.
156    IF FND_API.to_Boolean( p_init_msg_list ) THEN
157       FND_MSG_PUB.initialize;
158    END IF;
159    --  Initialize API return status to success
160    x_return_status := FND_API.G_RET_STS_SUCCESS;
161    -- API Body Begin
162 
163    -- check if the object version number is the same
164    OPEN l_ovn_csr;
165    FETCH l_ovn_csr INTO l_object_version_number;
166    CLOSE l_ovn_csr;
167 
168    if (l_object_version_number <> p_object_version_number) THEN
169 
170       IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)
171       THEN
172          fnd_message.set_name('CN', 'CL_INVALID_OVN');
173          fnd_msg_pub.add;
174       END IF;
175 
176       RAISE FND_API.G_EXC_ERROR;
177 
178    end if;
179 
180 
181 
182    cn_column_maps_pkg.Update_Row
183      (x_column_map_id         => p_column_map_id,
184       x_destination_column_id => p_destination_column_id,
185       x_table_map_id          => p_table_map_id,
186       x_expression            => p_expression,
187       x_editable              => p_editable,
188       x_modified              => p_modified,
189       x_update_clause         => p_update_clause,
190       x_calc_ext_table_id     => p_calc_ext_table_id,
191       x_last_update_date      => G_LAST_UPDATE_DATE,
192       x_last_updated_by       => G_LAST_UPDATED_BY,
193       x_last_update_login     => g_last_update_login,
194       x_object_version_number => p_object_version_number,
195       x_org_id => p_org_id);
196 
197        p_object_version_number := l_object_version_number + 1;
198 
199    -- End of API body.
200    -- Standard check of p_commit.
201    IF FND_API.To_Boolean( p_commit ) THEN
202       COMMIT WORK;
203    END IF;
204    -- Standard call to get message count and if count is 1, get message info.
205    FND_MSG_PUB.Count_And_Get
206      (p_count                 =>      x_msg_count             ,
207      p_data                   =>      x_msg_data              ,
208      p_encoded                =>      FND_API.G_FALSE         );
209 EXCEPTION
210    WHEN FND_API.G_EXC_ERROR THEN
211       ROLLBACK TO update_row_sv;
212       x_return_status := FND_API.G_RET_STS_ERROR ;
213       FND_MSG_PUB.Count_And_Get(
214            p_count   =>  x_msg_count ,
215            p_data    =>  x_msg_data  ,
216            p_encoded => FND_API.G_FALSE);
217    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
218       ROLLBACK TO update_row_sv;
219       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
220       FND_MSG_PUB.Count_And_Get(
221            p_count   =>  x_msg_count ,
222            p_data    =>  x_msg_data   ,
223            p_encoded => FND_API.G_FALSE);
224    WHEN OTHERS THEN
225       ROLLBACK TO update_row_sv;
226       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
227       IF FND_MSG_PUB.Check_Msg_Level(
228          FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
229          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
230       END IF;
231       FND_MSG_PUB.Count_And_Get(
232            p_count   =>  x_msg_count ,
233            p_data    =>  x_msg_data  ,
234            p_encoded => FND_API.G_FALSE);
235 END update_row;
236 
237 -----------------------------------------------------------------------------+
238 -- Procedure   : delete_row
239 -----------------------------------------------------------------------------+
240 PROCEDURE delete_row
241   (
242    p_api_version       IN NUMBER,
243    p_init_msg_list     IN VARCHAR2 := FND_API.G_FALSE,
244    p_commit            IN VARCHAR2 := FND_API.G_FALSE,
245    p_validation_level  IN NUMBER  := FND_API.G_VALID_LEVEL_FULL,
246    x_return_status    OUT NOCOPY VARCHAR2,
247    x_msg_count        OUT NOCOPY NUMBER,
248    x_msg_data         OUT NOCOPY VARCHAR2,
249    p_column_map_id     IN NUMBER,
250    p_org_id            IN NUMBER) IS
251 
252       l_api_name                  CONSTANT VARCHAR2(30) := 'delete_row';
253       l_api_version               CONSTANT NUMBER  := 1.0;
254 
255 BEGIN
256    -- Standard Start of API savepoint
257    SAVEPOINT delete_row_sv;
258    -- Standard call to check for call compatibility.
259    IF NOT FND_API.Compatible_API_Call ( l_api_version ,
260                                         p_api_version ,
261                                         l_api_name,
262                                         G_PKG_NAME ) THEN
263       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
264    END IF;
265    -- Initialize message list if p_init_msg_list is set to TRUE.
266    IF FND_API.to_Boolean( p_init_msg_list ) THEN
267       FND_MSG_PUB.initialize;
268    END IF;
269    --  Initialize API return status to success
270    x_return_status := FND_API.G_RET_STS_SUCCESS;
271    -- API Body Begin
272 
273    cn_column_maps_pkg.Delete_Row
274      (x_column_map_id => p_column_map_id, x_org_id => p_org_id);
275 
276    -- End of API body.
277    -- Standard check of p_commit.
278    IF FND_API.To_Boolean( p_commit ) THEN
279       COMMIT WORK;
280    END IF;
281    -- Standard call to get message count and if count is 1, get message info.
282    FND_MSG_PUB.Count_And_Get
283      (p_count                 =>      x_msg_count             ,
284      p_data                   =>      x_msg_data              ,
285      p_encoded                =>      FND_API.G_FALSE         );
286 EXCEPTION
287    WHEN FND_API.G_EXC_ERROR THEN
288       ROLLBACK TO delete_row_sv;
289       x_return_status := FND_API.G_RET_STS_ERROR ;
290       FND_MSG_PUB.Count_And_Get(
291            p_count   =>  x_msg_count ,
292            p_data    =>  x_msg_data  ,
293            p_encoded => FND_API.G_FALSE);
294    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
295       ROLLBACK TO delete_row_sv;
296       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
297       FND_MSG_PUB.Count_And_Get(
298            p_count   =>  x_msg_count ,
299            p_data    =>  x_msg_data   ,
300            p_encoded => FND_API.G_FALSE);
301    WHEN OTHERS THEN
302       ROLLBACK TO delete_row_sv;
303       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
304       IF FND_MSG_PUB.Check_Msg_Level(
305          FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
306          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
307       END IF;
308       FND_MSG_PUB.Count_And_Get(
309            p_count   =>  x_msg_count ,
310            p_data    =>  x_msg_data  ,
311            p_encoded => FND_API.G_FALSE);
312 
313 END delete_row;
314 
315 
316 END cn_column_maps_pvt;