DBA Data[Home] [Help]

PACKAGE: APPS.HR_PERSON_NAME

Source


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