DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_ENTY_ATTR_VALIDATIONS_PUB

Source


1 PACKAGE BODY PV_ENTY_ATTR_VALIDATIONS_PUB AS
2  /* $Header: pvxvvldb.pls 115.1 2002/12/10 19:29:45 amaram ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          PV_ENTY_ATTR_VALIDATIONS_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 
17  G_PKG_NAME  CONSTANT VARCHAR2(30) := 'PV_ENTY_ATTR_VALIDATIONS_PUB';
18  G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvvldb.pls';
19 
20  G_USER_ID         NUMBER := NVL(FND_GLOBAL.USER_ID,-1);
21  G_LOGIN_ID        NUMBER := NVL(FND_GLOBAL.CONC_LOGIN_ID,-1);
22 
23 
24 PROCEDURE Update_Attr_Validations(
25      p_api_version_number         IN   NUMBER
26     ,p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE
27     ,p_commit                     IN   VARCHAR2     := FND_API.G_FALSE
28     ,p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL
29 
30     ,x_return_status              OUT NOCOPY  VARCHAR2
31     ,x_msg_count                  OUT NOCOPY  NUMBER
32     ,x_msg_data                   OUT NOCOPY  VARCHAR2
33 
34     ,p_enty_attr_validation_rec   IN   PV_ENTY_ATTR_VALIDATIONS_PVT.enty_attr_validation_rec_type  := PV_ENTY_ATTR_VALIDATIONS_PVT.g_miss_enty_attr_vldtn_rec
35 	,p_attribute_Id				  IN NUMBER
36 	,p_entity_Id				  IN NUMBER
37 	,p_entity                     IN VARCHAR2
38 
39     )
40  IS
41 
42 CURSOR c_get_enty_attr_value(cv_entity_id NUMBER, cv_attribute_id NUMBER, cv_entity VARCHAR2 ) IS
43     SELECT *
44     FROM  PV_ENTY_ATTR_VALUES
45     WHERE entity_id = cv_entity_id and
46 	      attribute_id = cv_attribute_id and
47 		  entity = cv_entity and
48 		  latest_flag = 'Y'
49 		  ;
50 
51 l_api_name                 CONSTANT VARCHAR2(30) := 'Update_Attr_Validations';
52 l_full_name                CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
53 l_api_version_number       CONSTANT NUMBER   := 1.0;
54 
55 l_ref_enty_attr_val_rec    c_get_Enty_Attr_Value%ROWTYPE ;
56 l_tar_enty_attr_val_rec    PV_Enty_Attr_Value_PVT.enty_attr_val_rec_type ;
57 
58 l_object_version_number    NUMBER;
59 l_enty_attr_validation_id  NUMBER;
60 
61 l_count                    NUMBER :=0;
62 
63 
64  BEGIN
65       -- Standard Start of API savepoint
66       SAVEPOINT Update_Attr_Validations_PUB;
67 
68       -- Standard call to check for call compatibility.
69       IF NOT FND_API.Compatible_API_Call (
70               l_api_version_number
71              ,p_api_version_number
72              ,l_api_name
73              ,G_PKG_NAME
74              )
75       THEN
76           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77       END IF;
78 
79       -- Initialize message list if p_init_msg_list is set to TRUE.
80       IF FND_API.to_Boolean( p_init_msg_list )
81       THEN
82          FND_MSG_PUB.initialize;
83       END IF;
84 
85       -- Debug Message
86 	  IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
87 		PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - start');
88 	  END IF;
89 
90 
91       -- Initialize API return status to SUCCESS
92       x_return_status := FND_API.G_RET_STS_SUCCESS;
93 
94      --first call validations API, get valiodation id and update entity_attr_values API with that validation_id
95 	 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
96 		PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - calling PV_ENTY_ATTR_VALIDATIONS_PVT.Create_Enty_Attr_Validation');
97 	 END IF;
98 	  PV_ENTY_ATTR_VALIDATIONS_PVT.Create_Enty_Attr_Validation(
99 		 p_api_version_number         => p_api_version_number
100 		,p_init_msg_list              => p_init_msg_list
101 		,p_commit                     => p_commit
102 		,p_validation_level           => p_validation_level
103 
104 		,x_return_status              => x_return_status
105 		,x_msg_count                  => x_msg_count
106 		,x_msg_data                   => x_msg_data
107 
108 		,p_enty_attr_validation_rec   => p_enty_attr_validation_rec
109 		,x_enty_attr_validation_id    => l_enty_attr_validation_id
110       );
111 
112 	  IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
113           RAISE FND_API.G_EXC_ERROR;
114       END IF;
115 
116 
117 
118 
119       -- Debug Message
120 	  IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
121       PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Open Cursor to Select');
122       END IF;
123 
124 	  OPEN c_get_Enty_Attr_Value(	cv_entity_id =>p_entity_id ,
125 									cv_attribute_id => p_attribute_id,
126 									cv_entity => p_entity
127 								);
128 	  LOOP
129 
130 			FETCH c_get_Enty_Attr_Value INTO l_ref_enty_attr_val_rec  ;
131 
132 			EXIT WHEN c_get_Enty_Attr_Value%NOTFOUND;
133 
134 
135 
136 
137 			l_tar_enty_attr_val_rec.validation_id := l_enty_attr_validation_id;
138 
139 			l_tar_enty_attr_val_rec.enty_attr_val_id               := l_ref_enty_attr_val_rec.enty_attr_val_id ;
140 			l_tar_enty_attr_val_rec.last_update_date               := SYSDATE;
141 			l_tar_enty_attr_val_rec.last_updated_by                := G_USER_ID;
142 			l_tar_enty_attr_val_rec.creation_date                  := l_ref_enty_attr_val_rec.creation_date;
143 			l_tar_enty_attr_val_rec.created_by                     := l_ref_enty_attr_val_rec.created_by ;
144 			l_tar_enty_attr_val_rec.last_update_login              := l_ref_enty_attr_val_rec.last_update_login;
145 			l_tar_enty_attr_val_rec.object_version_number          := l_ref_enty_attr_val_rec.object_version_number;
146 			l_tar_enty_attr_val_rec.entity                         := l_ref_enty_attr_val_rec.entity;
147 			l_tar_enty_attr_val_rec.attribute_id                   := l_ref_enty_attr_val_rec.attribute_id;
148 			l_tar_enty_attr_val_rec.party_id                       := l_ref_enty_attr_val_rec.party_id ;
149 			l_tar_enty_attr_val_rec.attr_value                     := l_ref_enty_attr_val_rec.attr_value;
150 			l_tar_enty_attr_val_rec.score                          := l_ref_enty_attr_val_rec.score;
151 			l_tar_enty_attr_val_rec.enabled_flag                   := l_ref_enty_attr_val_rec.enabled_flag ;
152 			l_tar_enty_attr_val_rec.entity_id                      := l_ref_enty_attr_val_rec.entity_id;
153 			l_tar_enty_attr_val_rec.version						   := l_ref_enty_attr_val_rec.version;
154 			l_tar_enty_attr_val_rec.latest_flag					   := l_ref_enty_attr_val_rec.latest_flag	;
155 			l_tar_enty_attr_val_rec.attr_value_extn				   := l_ref_enty_attr_val_rec.attr_value_extn;
156 
157 			IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
158 			PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - calling PV_Enty_Attr_Value_PVT.Update_Attr_Value');
159 			END IF;
160 			PV_Enty_Attr_Value_PVT.Update_Attr_Value(
161 				 p_api_version_number         => p_api_version_number
162 				,p_init_msg_list              => p_init_msg_list
163 				,p_commit                     => p_commit
164 				,p_validation_level           => p_validation_level
165 
166 				,x_return_status              => x_return_status
167 				,x_msg_count                  => x_msg_count
168 				,x_msg_data                   => x_msg_data
169 
170 				,p_enty_attr_val_rec		  => l_tar_enty_attr_val_rec
171 				,x_object_version_number	  => l_object_version_number
172 			);
173 
174 			IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
175 			  RAISE FND_API.G_EXC_ERROR;
176 			 END IF;
177 
178 			l_count := l_count +1;
179 		END LOOP;
180 		   -- Debug Message
181 		 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
182          PVX_Utility_PVT.debug_message('Public API: '||l_full_name||' - Close Cursor');
183 		 END IF;
184        CLOSE     c_get_Enty_Attr_Value;
185 
186 
187 	  if(l_count = 0) then
188 		   IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
189 			   FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
190 			   FND_MESSAGE.set_token('MODE','Update');
191 			   FND_MESSAGE.set_token('ENTITY','Enty_Attr_Value');
192 			   FND_MESSAGE.set_token('ID','Entity:' || p_entity || ' entity id:' || p_entity_id || ' attribute id:' || p_attribute_id);
193 			   FND_MSG_PUB.add;
194 		   END IF;
195            RAISE FND_API.G_EXC_ERROR;
196 	  end if;
197 
198 
199 
200       --
201       -- End of API body.
202       --
203 
204       -- Standard check for p_commit
205       IF FND_API.to_Boolean( p_commit )
206       THEN
207          COMMIT WORK;
208       END IF;
209 
210       -- Debug Message
211       IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
212 	  PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
213 	  END IF;
214 
215       -- Standard call to get message count and if count is 1, get message info.
216       FND_MSG_PUB.Count_And_Get (
217           p_count          =>   x_msg_count
218          ,p_data           =>   x_msg_data
219          );
220 EXCEPTION
221 /*
222     WHEN PVX_Utility_PVT.resource_locked THEN
223       x_return_status := FND_API.g_ret_sts_error;
224   PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
225 */
226    WHEN FND_API.G_EXC_ERROR THEN
227      ROLLBACK TO Update_Attr_Validations_PUB;
228      x_return_status := FND_API.G_RET_STS_ERROR;
229      -- Standard call to get message count and if count=1, get the message
230      FND_MSG_PUB.Count_And_Get (
231             p_encoded => FND_API.G_FALSE
232            ,p_count   => x_msg_count
233            ,p_data    => x_msg_data
234            );
235 
236    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
237      ROLLBACK TO Update_Attr_Validations_PUB;
238      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
239      -- Standard call to get message count and if count=1, get the message
240      FND_MSG_PUB.Count_And_Get (
241             p_encoded => FND_API.G_FALSE
242            ,p_count => x_msg_count
243            ,p_data  => x_msg_data
244            );
245 
246    WHEN OTHERS THEN
247      ROLLBACK TO Update_Attr_Validations_PUB;
248      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
249      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
250      THEN
251         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
252      END IF;
253      -- Standard call to get message count and if count=1, get the message
254      FND_MSG_PUB.Count_And_Get (
255             p_encoded => FND_API.G_FALSE
256            ,p_count => x_msg_count
257            ,p_data  => x_msg_data
258            );
259 End Update_Attr_Validations;
260 
261 
262 
263 
264 END PV_ENTY_ATTR_VALIDATIONS_PUB;