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