1 package hr_person_name AUTHID CURRENT_USER as
2 /* $Header: pepernam.pkh 120.3.12020000.1 2012/06/29 01:43:58 appldev ship $ */
3 --
4 --
5 -- Package variables
6 --
7 --
8 g_FULL_NAME constant hr_name_formats.format_name%TYPE := 'FULL_NAME';
9 g_ORDER_NAME constant hr_name_formats.format_name%TYPE := 'ORDER_NAME';
10 g_DISPLAY_NAME constant hr_name_formats.format_name%TYPE := 'DISPLAY_NAME';
11 g_LIST_NAME constant hr_name_formats.format_name%TYPE := 'LIST_NAME';
12 --
13 TYPE t_nameColumns_Rec IS RECORD
14 (
15 row_id rowid
16 ,FIRST_NAME per_all_people_f.first_name%TYPE
17 ,MIDDLE_NAMES per_all_people_f.middle_names%TYPE
18 ,LAST_NAME per_all_people_f.last_name%TYPE
19 ,SUFFIX per_all_people_f.suffix%TYPE
20 ,PRE_NAME_ADJUNCT per_all_people_f.pre_name_adjunct%TYPE
21 ,TITLE per_all_people_f.title%TYPE
22 ,KNOWN_AS per_all_people_f.known_as%TYPE
23 ,EMAIL_ADDRESS per_all_people_f.email_address%TYPE
24 ,EMPLOYEE_NUMBER per_all_people_f.employee_number%TYPE
25 ,APPLICANT_NUMBER per_all_people_f.applicant_number%TYPE
26 ,NPW_NUMBER per_all_people_f.npw_number%TYPE
27 ,PREVIOUS_LAST_NAME per_all_people_f.previous_last_name%TYPE
28 ,PER_INFORMATION1 per_all_people_f.per_information1%TYPE
29 ,PER_INFORMATION2 per_all_people_f.per_information2%TYPE
30 ,PER_INFORMATION3 per_all_people_f.per_information3%TYPE
31 ,PER_INFORMATION4 per_all_people_f.per_information4%TYPE
32 ,PER_INFORMATION5 per_all_people_f.per_information5%TYPE
33 ,PER_INFORMATION6 per_all_people_f.per_information6%TYPE
34 ,PER_INFORMATION7 per_all_people_f.per_information7%TYPE
35 ,PER_INFORMATION8 per_all_people_f.per_information8%TYPE
36 ,PER_INFORMATION9 per_all_people_f.per_information9%TYPE
37 ,PER_INFORMATION10 per_all_people_f.per_information10%TYPE
38 ,PER_INFORMATION11 per_all_people_f.per_information11%TYPE
39 ,PER_INFORMATION12 per_all_people_f.per_information12%TYPE
40 ,PER_INFORMATION13 per_all_people_f.per_information13%TYPE
41 ,PER_INFORMATION14 per_all_people_f.per_information14%TYPE
42 ,PER_INFORMATION15 per_all_people_f.per_information15%TYPE
43 ,PER_INFORMATION16 per_all_people_f.per_information16%TYPE
44 ,PER_INFORMATION17 per_all_people_f.per_information17%TYPE
45 ,PER_INFORMATION18 per_all_people_f.per_information18%TYPE
46 ,PER_INFORMATION19 per_all_people_f.per_information19%TYPE
47 ,PER_INFORMATION20 per_all_people_f.per_information20%TYPE
48 ,PER_INFORMATION21 per_all_people_f.per_information21%TYPE
49 ,PER_INFORMATION22 per_all_people_f.per_information22%TYPE
50 ,PER_INFORMATION23 per_all_people_f.per_information23%TYPE
51 ,PER_INFORMATION24 per_all_people_f.per_information24%TYPE
52 ,PER_INFORMATION25 per_all_people_f.per_information25%TYPE
53 ,PER_INFORMATION26 per_all_people_f.per_information26%TYPE
54 ,PER_INFORMATION27 per_all_people_f.per_information27%TYPE
55 ,PER_INFORMATION28 per_all_people_f.per_information28%TYPE
56 ,PER_INFORMATION29 per_all_people_f.per_information29%TYPE
57 ,PER_INFORMATION30 per_all_people_f.per_information30%TYPE
58 ,ATTRIBUTE1 per_all_people_f.attribute1%TYPE
59 ,ATTRIBUTE2 per_all_people_f.attribute2%TYPE
60 ,ATTRIBUTE3 per_all_people_f.attribute3%TYPE
61 ,ATTRIBUTE4 per_all_people_f.attribute4%TYPE
62 ,ATTRIBUTE5 per_all_people_f.attribute5%TYPE
63 ,ATTRIBUTE6 per_all_people_f.attribute6%TYPE
64 ,ATTRIBUTE7 per_all_people_f.attribute7%TYPE
65 ,ATTRIBUTE8 per_all_people_f.attribute8%TYPE
66 ,ATTRIBUTE9 per_all_people_f.attribute9%TYPE
67 ,ATTRIBUTE10 per_all_people_f.attribute10%TYPE
68 ,ATTRIBUTE11 per_all_people_f.attribute11%TYPE
69 ,ATTRIBUTE12 per_all_people_f.attribute12%TYPE
70 ,ATTRIBUTE13 per_all_people_f.attribute13%TYPE
71 ,ATTRIBUTE14 per_all_people_f.attribute14%TYPE
72 ,ATTRIBUTE15 per_all_people_f.attribute15%TYPE
73 ,ATTRIBUTE16 per_all_people_f.attribute16%TYPE
74 ,ATTRIBUTE17 per_all_people_f.attribute17%TYPE
75 ,ATTRIBUTE18 per_all_people_f.attribute18%TYPE
76 ,ATTRIBUTE19 per_all_people_f.attribute19%TYPE
77 ,ATTRIBUTE20 per_all_people_f.attribute20%TYPE
78 ,ATTRIBUTE21 per_all_people_f.attribute21%TYPE
79 ,ATTRIBUTE22 per_all_people_f.attribute22%TYPE
80 ,ATTRIBUTE23 per_all_people_f.attribute23%TYPE
81 ,ATTRIBUTE24 per_all_people_f.attribute24%TYPE
82 ,ATTRIBUTE25 per_all_people_f.attribute25%TYPE
83 ,ATTRIBUTE26 per_all_people_f.attribute26%TYPE
84 ,ATTRIBUTE27 per_all_people_f.attribute27%TYPE
85 ,ATTRIBUTE28 per_all_people_f.attribute28%TYPE
86 ,ATTRIBUTE29 per_all_people_f.attribute29%TYPE
87 ,ATTRIBUTE30 per_all_people_f.attribute30%TYPE
88 ,FULL_NAME per_all_people_f.full_name%TYPE
89 ,ORDER_NAME per_all_people_f.order_name%TYPE
90 ,LOCAL_NAME per_all_people_f.local_name%TYPE
91 ,GLOBAL_NAME per_all_people_f.global_name%TYPE
92 ,BUSINESS_GROUP_ID per_all_people_f.business_group_id%TYPE
93 );
94 --
95 -- ----------------------------------------------------------------------------
96 -- |---------------------< get_person_name_internal >-------------------------|
97 -- ----------------------------------------------------------------------------
98 --
99 -- {Start Of Comments}
100 --
101 -- Description:
102 -- This function performs the construction of a formatted name character
103 -- string for a given person. The datetrack row will be specified by ROWID
104 -- for improved performance. The format mask must be passed in, if it is
105 -- null then null will be returned.
106 -- If format mask is found and token values are null, then full name
107 -- is returned.
108 --
109 -- Pre Conditions:
110 -- A ROWID of a person record must exist.
111 -- A valid format mask must be defined.
112 --
113 -- In Arguments:
114 -- Name Reqd Type Description
115 -- p_rowid Yes rowid Rowid of the person's date
116 -- effective row in
117 -- PER_ALL_PEOPLE_F table.
118 -- p_format_mask Yes varchar2 Actual mask used to create
119 -- names according to format.
120 --
121 -- Post Success:
122 -- A formatted name will be returned. This name is truncated to 240 characters.
123 --
124 -- Post Failure:
125 -- Name is not generated and an error is raised.
126 --
127 -- {End Of Comments}
128 --
129 function get_person_name_internal
130 (p_rowid in rowid
131 ,p_format_mask in varchar2) return varchar2;
132 --
133 -- ----------------------------------------------------------------------------
134 -- |--------------------------< get_person_name >-----------------------------|
135 -- ----------------------------------------------------------------------------
136 -- {Start Of Comments}
137 --
138 -- Description:
139 -- This function generates a formatted name for a given person (at a given
140 -- effective date). This format could be any format already defined in
141 -- the HR_NAME_FORMATS table. In case, the function is called with an
142 -- invalid Format Name/Mask a null name is returned.
143 --
144 -- Pre Conditions:
145 -- Person exists in the system as of effective date.
146 --
147 -- In Arguments:
148 -- Name Reqd Type Description
149 -- p_person_id Yes number Uniquely identifes a person
150 -- record on PER_ALL_PEOPLE_F
151 -- table.
152 -- p_effective_date Yes date Effective date to determine
153 -- unique person row.
154 -- p_format_name Yes varchar2 Identifies format from
155 -- HR_NAME_FORMATS which will
156 -- determine the name construction.
157 -- p_user_format_choice No varchar2 User Format Choice to
158 -- identify correct format.
159 --
160 -- Post Success:
161 -- A formatted name will be returned. This name will be truncated to 240
162 -- characters, for consistency, to match the length of string that can
163 -- be stored in the denormalized name columns on PER_ALL_PEOPLE_F table.
164 --
165 -- Post Failure:
166 -- Formatted name is not generated and error is raised.
167 --
168 -- {End Of Comments}
169 --
170 function get_person_name(p_person_id in number
171 ,p_effective_date in date
172 ,p_format_name in varchar2
173 ,p_user_format_choice in varchar2
174 ) return varchar2;
175 --
176 -- ----------------------------------------------------------------------------
177 -- |----------------------< OLD_get_person_name >-----------------------------|
178 -- ----------------------------------------------------------------------------
179 --
180 function get_person_name(
181 p_person_id in number,
182 p_effective_date in date default null,
183 p_format in varchar2 default null) return varchar2;
184 --
185 -- ----------------------------------------------------------------------------
186 -- |-------------------< OBSOLETE_get_person_name >---------------------------|
187 -- ----------------------------------------------------------------------------
188 -- *** This is left here for documentation purposes. ***
189 --
190 -- {Start Of Comments}
191 --
192 -- Description:
193 -- This function returns the person components.
194 -- If the format is specified then the components will be returned in
195 -- the specified format otherwise, person's full_name will be returned.
196 --
197 -- Pre Conditions:
198 -- If the effective_date is not specified, then sysdate will be defaulted.
199 --
200 -- This function validates only the following specified tokens.
201 --
202 -- $FI - First Name
203 -- $MI - Middle Name
204 -- $LA - Last Name
205 -- $PR - Prefix
206 -- $SU - Suffix
207 -- $TI - Title
208 -- $FU - Full Name
209 -- $KN - Known As
210 -- $IF - Initial First
211 -- $IM - Initial Middle
212 --
213 -- In Arguments:
214 -- person_id -- person_id, if not valid exception is raised.
215 -- effective_date -- date - defaults to sysdate if null
216 -- format -- A string with the above tokens (eg. $FI.$MI.$LA)
217 --
218 -- Post Success:
219 -- Processing continues.
220 --
221 -- Post Failure:
222 --
223 -- No_data_found is raised and is propagated to calling routine.
224 --
225 -- {End Of Comments}
226 -- ----------------------------------------------------------------------------
227 --function get_person_name(
228 -- p_person_id in number,
229 -- p_effective_date in date default null,
230 -- p_format in varchar2 default null) return varchar2;
231 --
232 --
233 -- ----------------------------------------------------------------------------
234 -- |------------------------< derive_person_names >---------------------------|
235 -- ----------------------------------------------------------------------------
236 -- {Start Of Comments}
237 --
238 -- Description:
239 -- This procedure generates formatted names for a given person: full name,
240 -- order name, global name, local name.
241 -- If p_format_name is passed in then only that name is generated; however,
242 -- this procedure can generate all the names stored in per_all_people_f
243 -- whenever specified.
244 --
245 -- If format name is passed in and a format mask is found, then
246 -- a) if token values are not null, then formatted name is returned
247 -- b) if all token values are null, then null is returned.
248 --
249 -- The system will derive the name according to the following rules:
250 -- a) Retrieve format mask for format name and legislation
251 -- b) if found then, derive name according to format mask
252 -- c) if not found then, search for seeded stored procedure and derive
253 -- name.
254 -- d) if seeded procedure found, then derive name using existing procedure.
255 -- e) if seeded procedure not found, then search for seeded format mask
256 -- and derive name. Seeded procedure is used when deriving Full Name
257 -- and/or Order Name.
258 -- e) if seeded format mask not found, then return null.
259 --
260 -- Pre Conditions:
261 -- N/A
262 --
263 -- In Arguments:
264 -- Name Reqd Type Description
265 -- p_format_name Yes varchar2 Identifies format from
266 -- HR_NAME_FORMATS which will
267 -- determine the name
268 -- construction.
269 -- if NULL, then ALL format names
270 -- will be derived: full, order,
271 -- global and local.
272 -- <..Name columns..> No All other columns that can be
273 -- used in the formatting of a
274 -- name.
275 --
276 -- Post Success:
277 -- A formatted name will be returned. This name will be truncated to 240
278 -- characters, for consistency, to match the length of string that can
279 -- be stored in the denormalized name columns on PER_ALL_PEOPLE_F table.
280 --
281 -- Post Failure:
282 -- Formatted name is not generated and error is raised.
283 --
284 -- {End Of Comments}
285 --
286 procedure derive_person_names
287 (p_format_name hr_name_formats.format_name%TYPE,
288 p_business_group_id per_all_people_f.business_group_id%TYPE,
289 p_person_id per_all_people_f.person_id%TYPE,
290 p_first_name per_all_people_f.first_name%TYPE,
291 p_middle_names per_all_people_f.middle_names%TYPE,
292 p_last_name per_all_people_f.last_name%TYPE,
293 p_known_as per_all_people_f.known_as%TYPE,
294 p_title per_all_people_f.title%TYPE,
295 p_suffix per_all_people_f.suffix%TYPE,
296 p_pre_name_adjunct per_all_people_f.pre_name_adjunct%TYPE,
297 p_date_of_birth per_all_people_f.date_of_birth%TYPE,
298 p_previous_last_name per_all_people_f.previous_last_name%TYPE DEFAULT NULL,
299 p_email_address per_all_people_f.email_address%TYPE DEFAULT NULL,
300 p_employee_number per_all_people_f.employee_number%TYPE DEFAULT NULL,
301 p_applicant_number per_all_people_f.applicant_number%TYPE DEFAULT NULL,
302 p_npw_number per_all_people_f.npw_number%TYPE DEFAULT NULL,
303 p_per_information1 per_all_people_f.per_information1%TYPE DEFAULT NULL,
304 p_per_information2 per_all_people_f.per_information2%TYPE DEFAULT NULL,
305 p_per_information3 per_all_people_f.per_information3%TYPE DEFAULT NULL,
306 p_per_information4 per_all_people_f.per_information4%TYPE DEFAULT NULL,
307 p_per_information5 per_all_people_f.per_information5%TYPE DEFAULT NULL,
308 p_per_information6 per_all_people_f.per_information6%TYPE DEFAULT NULL,
309 p_per_information7 per_all_people_f.per_information7%TYPE DEFAULT NULL,
310 p_per_information8 per_all_people_f.per_information8%TYPE DEFAULT NULL,
311 p_per_information9 per_all_people_f.per_information9%TYPE DEFAULT NULL,
315 p_per_information13 per_all_people_f.per_information13%TYPE DEFAULT NULL,
312 p_per_information10 per_all_people_f.per_information10%TYPE DEFAULT NULL,
313 p_per_information11 per_all_people_f.per_information11%TYPE DEFAULT NULL,
314 p_per_information12 per_all_people_f.per_information12%TYPE DEFAULT NULL,
316 p_per_information14 per_all_people_f.per_information14%TYPE DEFAULT NULL,
317 p_per_information15 per_all_people_f.per_information15%TYPE DEFAULT NULL,
318 p_per_information16 per_all_people_f.per_information16%TYPE DEFAULT NULL,
319 p_per_information17 per_all_people_f.per_information17%TYPE DEFAULT NULL,
320 p_per_information18 per_all_people_f.per_information18%TYPE DEFAULT NULL,
321 p_per_information19 per_all_people_f.per_information19%TYPE DEFAULT NULL,
322 p_per_information20 per_all_people_f.per_information20%TYPE DEFAULT NULL,
323 p_per_information21 per_all_people_f.per_information21%TYPE DEFAULT NULL,
324 p_per_information22 per_all_people_f.per_information22%TYPE DEFAULT NULL,
325 p_per_information23 per_all_people_f.per_information23%TYPE DEFAULT NULL,
326 p_per_information24 per_all_people_f.per_information24%TYPE DEFAULT NULL,
327 p_per_information25 per_all_people_f.per_information25%TYPE DEFAULT NULL,
328 p_per_information26 per_all_people_f.per_information26%TYPE DEFAULT NULL,
329 p_per_information27 per_all_people_f.per_information27%TYPE DEFAULT NULL,
330 p_per_information28 per_all_people_f.per_information28%TYPE DEFAULT NULL,
331 p_per_information29 per_all_people_f.per_information29%TYPE DEFAULT NULL,
332 p_per_information30 per_all_people_f.per_information30%TYPE DEFAULT NULL,
333 p_attribute1 per_all_people_f.attribute1%TYPE DEFAULT NULL,
334 p_attribute2 per_all_people_f.attribute2%TYPE DEFAULT NULL,
335 p_attribute3 per_all_people_f.attribute3%TYPE DEFAULT NULL,
336 p_attribute4 per_all_people_f.attribute4%TYPE DEFAULT NULL,
337 p_attribute5 per_all_people_f.attribute5%TYPE DEFAULT NULL,
338 p_attribute6 per_all_people_f.attribute6%TYPE DEFAULT NULL,
339 p_attribute7 per_all_people_f.attribute7%TYPE DEFAULT NULL,
340 p_attribute8 per_all_people_f.attribute8%TYPE DEFAULT NULL,
341 p_attribute9 per_all_people_f.attribute9%TYPE DEFAULT NULL,
342 p_attribute10 per_all_people_f.attribute10%TYPE DEFAULT NULL,
343 p_attribute11 per_all_people_f.attribute11%TYPE DEFAULT NULL,
344 p_attribute12 per_all_people_f.attribute12%TYPE DEFAULT NULL,
345 p_attribute13 per_all_people_f.attribute13%TYPE DEFAULT NULL,
346 p_attribute14 per_all_people_f.attribute14%TYPE DEFAULT NULL,
347 p_attribute15 per_all_people_f.attribute15%TYPE DEFAULT NULL,
348 p_attribute16 per_all_people_f.attribute16%TYPE DEFAULT NULL,
349 p_attribute17 per_all_people_f.attribute17%TYPE DEFAULT NULL,
350 p_attribute18 per_all_people_f.attribute18%TYPE DEFAULT NULL,
351 p_attribute19 per_all_people_f.attribute19%TYPE DEFAULT NULL,
352 p_attribute20 per_all_people_f.attribute20%TYPE DEFAULT NULL,
353 p_attribute21 per_all_people_f.attribute21%TYPE DEFAULT NULL,
354 p_attribute22 per_all_people_f.attribute22%TYPE DEFAULT NULL,
355 p_attribute23 per_all_people_f.attribute23%TYPE DEFAULT NULL,
356 p_attribute24 per_all_people_f.attribute24%TYPE DEFAULT NULL,
357 p_attribute25 per_all_people_f.attribute25%TYPE DEFAULT NULL,
358 p_attribute26 per_all_people_f.attribute26%TYPE DEFAULT NULL,
359 p_attribute27 per_all_people_f.attribute27%TYPE DEFAULT NULL,
360 p_attribute28 per_all_people_f.attribute28%TYPE DEFAULT NULL,
361 p_attribute29 per_all_people_f.attribute29%TYPE DEFAULT NULL,
362 p_attribute30 per_all_people_f.attribute30%TYPE DEFAULT NULL,
363 p_full_name OUT NOCOPY per_all_people_f.full_name%TYPE ,
364 p_order_name OUT NOCOPY per_all_people_f.order_name%TYPE,
365 p_global_name OUT NOCOPY per_all_people_f.global_name%TYPE,
366 p_local_name OUT NOCOPY per_all_people_f.local_name%TYPE,
367 p_duplicate_flag OUT NOCOPY VARCHAR2
368 );
369 --
370 --
371 procedure derive_person_names
372 (p_format_name hr_name_formats.format_name%TYPE,
373 p_business_group_id per_all_people_f.business_group_id%TYPE,
374 p_first_name per_all_people_f.first_name%TYPE,
375 p_middle_names per_all_people_f.middle_names%TYPE,
376 p_last_name per_all_people_f.last_name%TYPE,
377 p_known_as per_all_people_f.known_as%TYPE,
378 p_title per_all_people_f.title%TYPE,
379 p_suffix per_all_people_f.suffix%TYPE,
380 p_pre_name_adjunct per_all_people_f.pre_name_adjunct%TYPE,
381 p_date_of_birth per_all_people_f.date_of_birth%TYPE,
382 p_previous_last_name per_all_people_f.previous_last_name%TYPE DEFAULT NULL,
383 p_email_address per_all_people_f.email_address%TYPE DEFAULT NULL,
384 p_employee_number per_all_people_f.employee_number%TYPE DEFAULT NULL,
385 p_applicant_number per_all_people_f.applicant_number%TYPE DEFAULT NULL,
386 p_npw_number per_all_people_f.npw_number%TYPE DEFAULT NULL,
387 p_per_information1 per_all_people_f.per_information1%TYPE DEFAULT NULL,
388 p_per_information2 per_all_people_f.per_information2%TYPE DEFAULT NULL,
389 p_per_information3 per_all_people_f.per_information3%TYPE DEFAULT NULL,
390 p_per_information4 per_all_people_f.per_information4%TYPE DEFAULT NULL,
391 p_per_information5 per_all_people_f.per_information5%TYPE DEFAULT NULL,
392 p_per_information6 per_all_people_f.per_information6%TYPE DEFAULT NULL,
393 p_per_information7 per_all_people_f.per_information7%TYPE DEFAULT NULL,
394 p_per_information8 per_all_people_f.per_information8%TYPE DEFAULT NULL,
395 p_per_information9 per_all_people_f.per_information9%TYPE DEFAULT NULL,
396 p_per_information10 per_all_people_f.per_information10%TYPE DEFAULT NULL,
397 p_per_information11 per_all_people_f.per_information11%TYPE DEFAULT NULL,
398 p_per_information12 per_all_people_f.per_information12%TYPE DEFAULT NULL,
399 p_per_information13 per_all_people_f.per_information13%TYPE DEFAULT NULL,
403 p_per_information17 per_all_people_f.per_information17%TYPE DEFAULT NULL,
400 p_per_information14 per_all_people_f.per_information14%TYPE DEFAULT NULL,
401 p_per_information15 per_all_people_f.per_information15%TYPE DEFAULT NULL,
402 p_per_information16 per_all_people_f.per_information16%TYPE DEFAULT NULL,
404 p_per_information18 per_all_people_f.per_information18%TYPE DEFAULT NULL,
405 p_per_information19 per_all_people_f.per_information19%TYPE DEFAULT NULL,
406 p_per_information20 per_all_people_f.per_information20%TYPE DEFAULT NULL,
407 p_per_information21 per_all_people_f.per_information21%TYPE DEFAULT NULL,
408 p_per_information22 per_all_people_f.per_information22%TYPE DEFAULT NULL,
409 p_per_information23 per_all_people_f.per_information23%TYPE DEFAULT NULL,
410 p_per_information24 per_all_people_f.per_information24%TYPE DEFAULT NULL,
411 p_per_information25 per_all_people_f.per_information25%TYPE DEFAULT NULL,
412 p_per_information26 per_all_people_f.per_information26%TYPE DEFAULT NULL,
413 p_per_information27 per_all_people_f.per_information27%TYPE DEFAULT NULL,
414 p_per_information28 per_all_people_f.per_information28%TYPE DEFAULT NULL,
415 p_per_information29 per_all_people_f.per_information29%TYPE DEFAULT NULL,
416 p_per_information30 per_all_people_f.per_information30%TYPE DEFAULT NULL,
417 p_attribute1 per_all_people_f.attribute1%TYPE DEFAULT NULL,
418 p_attribute2 per_all_people_f.attribute2%TYPE DEFAULT NULL,
419 p_attribute3 per_all_people_f.attribute3%TYPE DEFAULT NULL,
420 p_attribute4 per_all_people_f.attribute4%TYPE DEFAULT NULL,
421 p_attribute5 per_all_people_f.attribute5%TYPE DEFAULT NULL,
422 p_attribute6 per_all_people_f.attribute6%TYPE DEFAULT NULL,
423 p_attribute7 per_all_people_f.attribute7%TYPE DEFAULT NULL,
424 p_attribute8 per_all_people_f.attribute8%TYPE DEFAULT NULL,
425 p_attribute9 per_all_people_f.attribute9%TYPE DEFAULT NULL,
426 p_attribute10 per_all_people_f.attribute10%TYPE DEFAULT NULL,
427 p_attribute11 per_all_people_f.attribute11%TYPE DEFAULT NULL,
428 p_attribute12 per_all_people_f.attribute12%TYPE DEFAULT NULL,
429 p_attribute13 per_all_people_f.attribute13%TYPE DEFAULT NULL,
430 p_attribute14 per_all_people_f.attribute14%TYPE DEFAULT NULL,
431 p_attribute15 per_all_people_f.attribute15%TYPE DEFAULT NULL,
432 p_attribute16 per_all_people_f.attribute16%TYPE DEFAULT NULL,
433 p_attribute17 per_all_people_f.attribute17%TYPE DEFAULT NULL,
434 p_attribute18 per_all_people_f.attribute18%TYPE DEFAULT NULL,
435 p_attribute19 per_all_people_f.attribute19%TYPE DEFAULT NULL,
436 p_attribute20 per_all_people_f.attribute20%TYPE DEFAULT NULL,
437 p_attribute21 per_all_people_f.attribute21%TYPE DEFAULT NULL,
438 p_attribute22 per_all_people_f.attribute22%TYPE DEFAULT NULL,
439 p_attribute23 per_all_people_f.attribute23%TYPE DEFAULT NULL,
440 p_attribute24 per_all_people_f.attribute24%TYPE DEFAULT NULL,
441 p_attribute25 per_all_people_f.attribute25%TYPE DEFAULT NULL,
442 p_attribute26 per_all_people_f.attribute26%TYPE DEFAULT NULL,
443 p_attribute27 per_all_people_f.attribute27%TYPE DEFAULT NULL,
444 p_attribute28 per_all_people_f.attribute28%TYPE DEFAULT NULL,
445 p_attribute29 per_all_people_f.attribute29%TYPE DEFAULT NULL,
446 p_attribute30 per_all_people_f.attribute30%TYPE DEFAULT NULL,
447 p_full_name OUT NOCOPY per_all_people_f.full_name%TYPE ,
448 p_order_name OUT NOCOPY per_all_people_f.order_name%TYPE,
449 p_global_name OUT NOCOPY per_all_people_f.global_name%TYPE,
450 p_local_name OUT NOCOPY per_all_people_f.local_name%TYPE
451 );
452 --
453 -- ----------------------------------------------------------------------------
454 -- |---------------------< get_formatted_name >-------------------------------|
455 -- ----------------------------------------------------------------------------
456 -- Description:
457 -- This function returns the formatted name based on the column values passed
458 -- in as parameters. If column value is null, then token is ignored.
459 --
460 procedure get_formatted_name(p_name_values in hr_person_name.t_nameColumns_Rec
461 ,p_formatted_name in out nocopy varchar2);
462 --
463 -- ----------------------------------------------------------------------------
464 -- |--------------------< derive_formatted_name >-----------------------------|
465 -- ----------------------------------------------------------------------------
466 -- Description:
467 -- This function returns the formatted name based on the column values passed
468 -- in as parameters. This version assumes all the values are already
469 -- cached prior to constructing the name. It derives one name at the time.
470 --
471 function derive_formatted_name
472 (p_person_names_rec in hr_person_name.t_nameColumns_Rec
473 ,p_format_name in varchar2
474 ,p_legislation_code in varchar2
475 ,p_format_mask in varchar2
476 ,p_seeded_pkg in varchar2 default NULL
477 ,p_seeded_procedure in varchar2 default NULL
478 ,p_seeded_format_mask in varchar2 default NULL) return varchar2;
479 --
480 -- ----------------------------------------------------------------------------
481 -- |-------------------< get_seeded_procedure_name >--------------------------|
482 -- ----------------------------------------------------------------------------
483 --
484 procedure get_seeded_procedure_name
485 (p_format_name IN varchar2
486 ,p_legislation_code IN varchar2
487 ,p_package_name OUT nocopy varchar2
488 ,p_procedure_name OUT nocopy varchar2 );
489 --
490 -- ----------------------------------------------------------------------------
491 -- |---------------------< get_formatMask_desc >-------------------------------|
492 -- ----------------------------------------------------------------------------
493 -- Description:
494 -- This function is used by the UI. It returns a descriptive format mask.
495 -- i.e. token descriptions.
496 --
497 function get_formatMask_desc(p_formatMask varchar2) return varchar2;
498 --
499 -- ----------------------------------------------------------------------------
500 -- |-----------------------< get_token >---------------------------------------|
501 -- ----------------------------------------------------------------------------
502 -- Description:
503 -- Returns the token that is on a specific location within the format mask.
504 -- This location is determined by the p_token_number parameter.
505 --
506 function get_token(p_format_mask in varchar2
507 ,p_token_number in number) return varchar2;
508 --
509 -- ----------------------------------------------------------------------------
510 -- |----------------------< get_token_desc >----------------------------------|
511 -- ----------------------------------------------------------------------------
512 -- Description:
513 -- Returns the token description (lookup meaning).
514 --
515 function get_token_desc(p_token in varchar2) return varchar2;
516 --
517 -- ----------------------------------------------------------------------------
518 -- |-----------------------< get_prefix >--------------------------------------|
519 -- ----------------------------------------------------------------------------
520 -- Description:
521 -- Returns the prefix associated with a particular token.
522 -- The p_token_number identifies the specific location within the format mask.
523 --
524 function get_prefix(p_format_mask in varchar2
525 ,p_token_number in number) return varchar2;
526 --
527 -- ----------------------------------------------------------------------------
528 -- |-----------------------< get_suffix >--------------------------------------|
529 -- ----------------------------------------------------------------------------
530 -- Description:
531 -- Returns the suffix associated with a particular token.
532 -- The p_token_number identifies the specific location within the format mask.
533 --
534 function get_suffix(p_format_mask in varchar2
535 ,p_token_number in number) return varchar2;
536 --
537 -- ----------------------------------------------------------------------------
538 -- |----------------------< get_total_tokens >--------------------------------|
539 -- ----------------------------------------------------------------------------
540 -- Description:
541 -- Returns the number of components (tokens) used in a format mask.
542 --
543 function get_total_tokens(p_format_mask in varchar2) return number;
544 --
545 -- ----------------------------------------------------------------------------
546 -- |----------------------< get_space_before >--------------------------------|
547 -- ----------------------------------------------------------------------------
548 -- Description:
549 -- This returns 'Y' if a white space has been used before any punctuation
550 -- characters within the component (suffix or prefix).
551 -- Otherwise, returns 'N'.
552 --
553 function get_space_before(p_component varchar2) return varchar2;
554 --
555 -- ----------------------------------------------------------------------------
556 -- |----------------------< get_space_after >--------------------------------|
557 -- ----------------------------------------------------------------------------
558 -- Description:
559 -- This returns 'Y' if a white space has been used after any punctuation
560 -- characters within the component (suffix or prefix).
561 -- Otherwise, returns 'N'.
562 --
563 function get_space_after(p_component varchar2) return varchar2;
564 --
565 -- ----------------------------------------------------------------------------
566 -- |----------------------< get_punctuation >--------------------------------|
567 -- ----------------------------------------------------------------------------
568 -- Description:
569 -- This returns the special characters used within the component.
570 -- Otherwise, returns null.
571 --
572 function get_punctuation(p_component varchar2) return varchar2;
573 --
574 --
575 -- ----------------------------------------------------------------------------
576 -- |-----------------------< get_list_namne >--------------------------------|
577 -- ----------------------------------------------------------------------------
578 -- Description:
579 -- This returns either a global or local name depending on the profile
580 -- option setting. This function is to be used within the inter-operable
581 -- views (See 4428910).
582 --
583 function get_list_name(p_global_name in varchar2, p_local_name in varchar2)
584 return varchar2;
585 PRAGMA RESTRICT_REFERENCES (get_list_name, WNPS, WNDS, trust);
586 --
587 --
588 end hr_person_name;
589 --