DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_EXTRACT_EXT_ATTRI_BO_PVT

Source


1 PACKAGE BODY HZ_EXTRACT_EXT_ATTRI_BO_PVT AS
2 /*$Header: ARHEEXVB.pls 120.7 2007/11/27 10:35:36 kguggila ship $ */
3 /*
4  * This package contains the private APIs for ssm information.
5  * @rep:scope private
6  * @rep:product HZ
7  * @rep:displayname customer account site
8  * @rep:category BUSINESS_ENTITY HZ_PARTIES
9  * @rep:lifecycle active
10  * @rep:doccd 115hztig.pdf cGet APIs
11  */
12 
13   --------------------------------------
14   --
15   -- PROCEDURE get_ext_attribute_bos
16   --
17   -- DESCRIPTION
18   --     Get extensibility attributes information.
19   --
20   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
21   --
22   -- ARGUMENTS
23   --   IN:
24   --     p_init_msg_list      Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
25 --       p_ext_object_id          ext object ID.ex: party_id, party_site_id
26   --     p_ext_object_name        ext object name. ex: HZ_PERSON_PROFILES, etc
27   --
28   --   OUT:
29   --    x_ext_attribute_objs  Table of extensibility attribute objects.
30   --     x_return_status      Return status after the call. The status can
31   --                          be fnd_api.g_ret_sts_success (success),
32   --                          fnd_api.g_ret_sts_error (error),
33   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
34   --     x_msg_count          Number of messages in message stack.
35   --     x_msg_data           Message text if x_msg_count is 1.
36   --
37   -- NOTES
38   --
39   -- MODIFICATION HISTORY
40   --
41   --
42   --   15-Aug-2005   AWU                Created.
43   --
44 
45 
46  FUNCTION get_extension_id(p_ext_object_name in varchar2, p_ext_object_id in number, p_attr_group_id in number) return number is
47 
48 	cursor org_csr is
49 		select extension_id
50 		from hz_org_profiles_ext_b
51 		where organization_profile_id = p_ext_object_id
52 		and attr_group_id = p_attr_group_id;
53 
54 	cursor person_csr is
55 		select extension_id
56 		from hz_per_profiles_ext_b
57 		where person_profile_id = p_ext_object_id
58 		and attr_group_id = p_attr_group_id;
59 
60 	cursor psite_csr is
61 		select extension_id
62 		from hz_party_sites_ext_b
63 		where party_site_id = p_ext_object_id
64 		and attr_group_id = p_attr_group_id;
65 
66 	cursor loc_csr is
67 		select extension_id
68 		from hz_locations_ext_b
69 		where location_id = p_ext_object_id
70 		and attr_group_id = p_attr_group_id;
71 
72 l_extension_id number;
73 
74 begin
75 	 if p_ext_object_name = 'HZ_ORGANIZATION_PROFILES'
76     	 then
77 		open org_csr;
78 		fetch org_csr into l_extension_id;
79 		close org_csr;
80 		return l_extension_id;
81     	 elsif p_ext_object_name = 'HZ_PERSON_PROFILES'
82     	 then
83 		open person_csr;
84 		fetch person_csr into l_extension_id;
85 		close person_csr;
86 		return l_extension_id;
87     	 elsif p_ext_object_name = 'HZ_PARTY_SITES'
88     	 then
89 		open psite_csr;
90 		fetch psite_csr into l_extension_id;
91 		close psite_csr;
92 		return l_extension_id;
93 
94     	 elsif p_ext_object_name = 'HZ_LOCATIONS'
95     	 then
96 		open loc_csr;
97 		fetch loc_csr into l_extension_id;
98 		close loc_csr;
99 		return l_extension_id;
100 	 end if;
101 
102 end;
103 
104  PROCEDURE get_ext_attribute_bos(
105     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
106     p_ext_object_id           IN            NUMBER,
107     p_ext_object_name           IN            VARCHAR2,
108     p_action_type	  IN VARCHAR2 := NULL,
109     x_ext_attribute_objs          OUT NOCOPY    HZ_EXT_ATTRIBUTE_OBJ_TBL,
110     x_return_status       OUT NOCOPY    VARCHAR2,
111     x_msg_count           OUT NOCOPY    NUMBER,
112     x_msg_data            OUT NOCOPY    VARCHAR2
113   ) is
114 
115 	cursor c1 is
116 	--Start bug 6503079
117 		/*select EGO_ATTR_GROUP_REQUEST_OBJ(
118 			ATTR_GROUP_ID,
119  			APPLICATION_ID,
120  			ATTR_GROUP_TYPE,
121  			ATTR_GROUP_NAME,
122 			NULL,
123 			NULL,
124 			NULL,
125 			NULL)*/
126 		select EGO_USER_ATTRS_DATA_PUB.Build_Attr_Group_Request_Obj(
127 				ATTR_GROUP_ID,
128 	 			APPLICATION_ID,
129 	 			ATTR_GROUP_TYPE,
130 	 			ATTR_GROUP_NAME,
131 				NULL,
132 				NULL,
133 				NULL,
134 				NULL,
135 				NULL,
136 				NULL,
137 				NULL)
138 	--End bug 6503079
139 		from ego_obj_attr_grp_assocs_v
140 		where object_name = p_ext_object_name;
141 
142 l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
143 l_attr_group_request_table EGO_ATTR_GROUP_REQUEST_TABLE;
144 l_attributes_row_table EGO_USER_ATTR_ROW_TABLE;
145 l_attributes_data_table EGO_USER_ATTR_DATA_TABLE;
146 l_pk_name varchar2(30);
147 l_errorcode varchar2(30);
148 l_parent_object_type varchar2(30);
149 l_row number := 1;
150 l_debug_prefix              VARCHAR2(30) := '';
151 begin
152 
153     l_attr_group_request_table := EGO_ATTR_GROUP_REQUEST_TABLE();
154     l_attr_group_request_table.extend;
155 
156     x_ext_attribute_objs := HZ_EXT_ATTRIBUTE_OBJ_TBL();
157     -- x_ext_attribute_objs.extend;
158 
159     open c1;
160     fetch c1 BULK COLLECT into l_attr_group_request_table;
161     close c1;
162 
163     if p_ext_object_name = 'HZ_ORGANIZATION_PROFILES'
164     then
165 	l_pk_name := 'ORGANIZATION_PROFILE_ID';
166 	l_parent_object_type := 'ORG';
167     elsif p_ext_object_name = 'HZ_PERSON_PROFILES'
168     then
169 	l_pk_name := 'PERSON_PROFILE_ID';
170 	l_parent_object_type := 'PERSON';
171     elsif p_ext_object_name = 'HZ_PARTY_SITES'
172     then
173 	l_pk_name := 'PARTY_SITE_ID';
174 	l_parent_object_type := HZ_EXTRACT_BO_UTIL_PVT.get_parent_object_type('HZ_PARTIES',P_EXT_OBJECT_ID);
175     elsif p_ext_object_name = 'HZ_LOCATIONS'
176     then
177 	l_pk_name := 'LOCATION_ID';
178 	l_parent_object_type := 'PARTY_SITE';
179     end if;
180 
181     l_pk_column_name_value_pairs :=
182       EGO_COL_NAME_VALUE_PAIR_ARRAY(
183        EGO_COL_NAME_VALUE_PAIR_OBJ(l_pk_name, TO_CHAR(p_ext_object_id ))
184       );
185 
186  EGO_USER_ATTRS_DATA_PUB.Get_User_Attrs_Data(
187       p_api_version                   => 1.0
188      ,p_object_name                   => p_ext_object_name
189      ,p_pk_column_name_value_pairs    => l_pk_column_name_value_pairs
190      ,p_attr_group_request_table      => l_attr_group_request_table
191      ,p_user_privileges_on_object     => NULL
192      ,p_entity_id                     => NULL
193      ,p_entity_index                  => NULL
194      ,p_entity_code                   => NULL
195      ,p_debug_level                   => NULL
196      ,p_init_error_handler            => NULL
197      ,p_init_fnd_msg_list             => NULL
198      ,p_add_errors_to_fnd_stack       => NULL
199      ,p_commit                        => NULL
200      ,x_attributes_row_table          => l_attributes_row_table
201      ,x_attributes_data_table         => l_attributes_data_table
202      ,x_return_status                 => x_return_status
203      ,x_errorcode                     => l_errorcode
204      ,x_msg_count                     => x_msg_count
205      ,x_msg_data                      => x_msg_data
206     );
207 
208     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
209 	FND_MESSAGE.SET_NAME('AR', 'ERROR IN EGO_USER_ATTRS_DATA_PUB.Get_User_Attrs_Data');
210 	FND_MSG_PUB.ADD;
211       	RAISE FND_API.G_EXC_ERROR;
212     END IF;
213 if (l_attributes_row_table is not null) and (l_attributes_data_table is not null)
214 then
215     for i in 1..l_attributes_row_table.count loop
216 	for j in 1..l_attributes_data_table.count loop
217 		if l_attributes_row_table(i).ROW_IDENTIFIER = l_attributes_data_table(j).ROW_IDENTIFIER
218 		then
219 			x_ext_attribute_objs.extend;
220 			x_ext_attribute_objs(l_row) := HZ_EXT_ATTRIBUTE_OBJ(
221                                 -- row_identifier return is the extension id
222 				--get_extension_id(p_ext_object_name, p_ext_object_id,l_attributes_row_table(i).ATTR_GROUP_ID),
223 				l_attributes_row_table(i).ROW_IDENTIFIER,
224                                 null,
225 				l_attributes_row_table(i).ROW_IDENTIFIER,
226 				l_attributes_row_table(i).ATTR_GROUP_NAME,
227 				p_action_type,
228 				l_parent_object_type,
229 				p_ext_object_id,
230 				l_attributes_data_table(j).ATTR_NAME,
231 				l_attributes_data_table(j).ATTR_VALUE_STR,
232 				l_attributes_data_table(j).ATTR_VALUE_NUM,
233 				l_attributes_data_table(j).ATTR_VALUE_DATE,
234 				l_attributes_data_table(j).ATTR_DISP_VALUE,
235 				l_attributes_row_table(i).ATTR_GROUP_TYPE,
236 				l_attributes_row_table(i).ATTR_GROUP_ID);
237 		  l_row := l_row + 1;
238 		end if;
239 		end loop;
240 	end loop;
241  end if;
242  EXCEPTION
243 
244   WHEN fnd_api.g_exc_error THEN
245       x_return_status := fnd_api.g_ret_sts_error;
246 
247       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
248                                 p_count => x_msg_count,
249                                 p_data  => x_msg_data);
250 
251       -- Debug info.
252       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
253         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
254                                p_msg_data=>x_msg_data,
255                                p_msg_type=>'ERROR',
256                                p_msg_level=>fnd_log.level_error);
257       END IF;
258       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
259         hz_utility_v2pub.debug(p_message=>'get_organizations_updated(-)',
260                                p_prefix=>l_debug_prefix,
261                                p_msg_level=>fnd_log.level_procedure);
262       END IF;
263     WHEN fnd_api.g_exc_unexpected_error THEN
264       x_return_status := fnd_api.g_ret_sts_unexp_error;
265 
266       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
267                                 p_count => x_msg_count,
268                                 p_data  => x_msg_data);
269 
270       -- Debug info.
271       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
272         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
273                                p_msg_data=>x_msg_data,
274                                p_msg_type=>'UNEXPECTED ERROR',
275                                p_msg_level=>fnd_log.level_error);
276       END IF;
277       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
278         hz_utility_v2pub.debug(p_message=>'get_organizations_updated(-)',
279                                p_prefix=>l_debug_prefix,
280                                p_msg_level=>fnd_log.level_procedure);
281       END IF;
282     WHEN OTHERS THEN
283       x_return_status := fnd_api.g_ret_sts_unexp_error;
284 
285       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
286       fnd_message.set_token('ERROR' ,SQLERRM);
287       fnd_msg_pub.add;
288 
289       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
290                                 p_count => x_msg_count,
291                                 p_data  => x_msg_data);
292 
293       -- Debug info.
294       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
295         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
296                                p_msg_data=>x_msg_data,
297                                p_msg_type=>'SQL ERROR',
298                                p_msg_level=>fnd_log.level_error);
299       END IF;
300       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
301         hz_utility_v2pub.debug(p_message=>'get_organizations_updated(-)',
302                                p_prefix=>l_debug_prefix,
303                                p_msg_level=>fnd_log.level_procedure);
304       END IF;
305 
306 end;
307 
308 END HZ_EXTRACT_EXT_ATTRI_BO_PVT;