DBA Data[Home] [Help]

PACKAGE: APPS.HR_POSITION_API

Source


1 Package hr_position_api as
2 /* $Header: peposapi.pkh 120.5.12010000.1 2008/07/28 05:23:44 appldev ship $ */
3 /*#
4  * This package contains position APIs.
5  * @rep:scope public
6  * @rep:product per
7  * @rep:displayname Position
8 */
9 FULL_HR   boolean;
10 --
11 --
12 g_debug boolean := hr_utility.debug_enabled;
13 --
14 -- ----------------------------------------------------------------------------
15 -- |-----------------------------< create_position >--------------------------|
16 -- ----------------------------------------------------------------------------
17 --
18 -- {Start Of Comments}
19 /*#
20  * This API creates a position which is a specific occurrence of a job within
21  * an organization and should be used if you are a Shared HR (HR Foundation)
22  * user and do not have HR fully installed.
23  *
24  * Based on the position definition segments which are passed a position
25  * definition id is selected for the position, or a new position definition
26  * record is created.
27  *
28  * <p><b>Licensing</b><br>
29  * This API version is licensed for use with HR Foundation.
30  *
31  * <p><b>Prerequisites</b><br>
32  * A valid organization and job must be passed to the API. Also at least one
33  * segment for position definition must have a value.
34  *
35  * <p><b>Restricted Usage Notes</b><br>
36  * You can use all of the parameters in the version of this API that is
37  * specifically for HR Foundation users.
38  *
39  * <p><b>Post Success</b><br>
40  * The API creates the position successfully in the database.
41  *
42  * <p><b>Post Failure</b><br>
43  * The position is not created in the database and an error is raised.
44  * @param p_validate If true, then validation alone will be performed and the
45  * database will remain unchanged. If false and all validation checks pass,
46  * then the database will be modified.
47  * @param p_job_id The job for the position.
48  * @param p_organization_id The organization for which the position belongs.
49  * @param p_date_effective The date on which the position becomes active.
50  * @param p_successor_position_id Identifies the successor position.
51  * @param p_relief_position_id Identifies the relief position.
52  * @param p_location_id The location of the position.
53  * @param p_comments Comment text.
54  * @param p_date_end The date on which the position is no longer active.
55  * @param p_frequency Frequency of working hours. Valid values are defined by
56  * 'FREQUENCY' lookup_type.
57  * @param p_probation_period Length of probation period.
58  * @param p_probation_period_units Units that the probation period is measured
59  * in. Valid values are defined by 'QUALIFYING_UNITS' lookup_type.
60  * @param p_replacement_required_flag Identifies if a replacement is required
61  * when person assigned is absent. Valid values are defined by 'YES_NO' lookup
62  * type.
63  * @param p_time_normal_finish Normal end time.
64  * @param p_time_normal_start Normal start time.
65  * @param p_status Position status. Valid values are defined by
66  * 'POSITION_STATUS' lookup type.
67  * @param p_working_hours Number of normal working hours.
68  * @param p_attribute_category This context value determines which flexfield
69  * structure to use with the descriptive flexfield segments.
70  * @param p_attribute1 Descriptive flexfield segment.
71  * @param p_attribute2 Descriptive flexfield segment.
72  * @param p_attribute3 Descriptive flexfield segment.
73  * @param p_attribute4 Descriptive flexfield segment.
74  * @param p_attribute5 Descriptive flexfield segment.
75  * @param p_attribute6 Descriptive flexfield segment.
76  * @param p_attribute7 Descriptive flexfield segment.
77  * @param p_attribute8 Descriptive flexfield segment.
78  * @param p_attribute9 Descriptive flexfield segment.
79  * @param p_attribute10 Descriptive flexfield segment.
80  * @param p_attribute11 Descriptive flexfield segment.
81  * @param p_attribute12 Descriptive flexfield segment.
82  * @param p_attribute13 Descriptive flexfield segment.
83  * @param p_attribute14 Descriptive flexfield segment.
84  * @param p_attribute15 Descriptive flexfield segment.
85  * @param p_attribute16 Descriptive flexfield segment.
86  * @param p_attribute17 Descriptive flexfield segment.
87  * @param p_attribute18 Descriptive flexfield segment.
88  * @param p_attribute19 Descriptive flexfield segment.
89  * @param p_attribute20 Descriptive flexfield segment.
90  * @param p_segment1 Key flexfield segment.
91  * @param p_segment2 Key flexfield segment.
92  * @param p_segment3 Key flexfield segment.
93  * @param p_segment4 Key flexfield segment.
94  * @param p_segment5 Key flexfield segment.
95  * @param p_segment6 Key flexfield segment.
96  * @param p_segment7 Key flexfield segment.
97  * @param p_segment8 Key flexfield segment.
98  * @param p_segment9 Key flexfield segment.
99  * @param p_segment10 Key flexfield segment.
100  * @param p_segment11 Key flexfield segment.
101  * @param p_segment12 Key flexfield segment.
102  * @param p_segment13 Key flexfield segment.
103  * @param p_segment14 Key flexfield segment.
104  * @param p_segment15 Key flexfield segment.
105  * @param p_segment16 Key flexfield segment.
106  * @param p_segment17 Key flexfield segment.
107  * @param p_segment18 Key flexfield segment.
108  * @param p_segment19 Key flexfield segment.
109  * @param p_segment20 Key flexfield segment.
110  * @param p_segment21 Key flexfield segment.
111  * @param p_segment22 Key flexfield segment.
112  * @param p_segment23 Key flexfield segment.
113  * @param p_segment24 Key flexfield segment.
114  * @param p_segment25 Key flexfield segment.
115  * @param p_segment26 Key flexfield segment.
116  * @param p_segment27 Key flexfield segment.
117  * @param p_segment28 Key flexfield segment.
118  * @param p_segment29 Key flexfield segment.
119  * @param p_segment30 Key flexfield segment.
120  * @param p_concat_segments Concatenated string of segment values
121  * @param p_position_id If p_validate is false, then this uniquely identifies
122  * the position created. If p_validate is true, then set to null.
123  * @param p_object_version_number If p_validate is false, then set to the
124  * version number of the created position. If p_validate is true, then the
125  * value will be null.
126  * @param p_position_definition_id If p_validate is false, then this uniquely
127  * identifies the combination of position segments created. If p_validate is
128  * true, then set to null.
129  * @param p_name If p_validate is false, then this identifies concatenation of
130  * all name segments. If p_validate is true, then set to null.
131  * @rep:displayname Create Position
132  * @rep:category BUSINESS_ENTITY PER_POSITION
133  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
134  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
135  * @rep:scope public
136  * @rep:lifecycle active
137  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
138 */
139 --
140 -- {End Of Comments}
141 --
142 procedure create_position
143   (p_validate                      in     boolean  default false
144   ,p_job_id                        in     number
145   ,p_organization_id               in     number
146   ,p_date_effective                in     date
147   ,p_successor_position_id         in     number   default null
148   ,p_relief_position_id            in     number   default null
149   ,p_location_id                   in     number   default null
150   ,p_comments                      in     varchar2 default null
151   ,p_date_end                      in     date     default null
152   ,p_frequency                     in     varchar2 default null
153   ,p_probation_period              in     number   default null
154   ,p_probation_period_units        in     varchar2 default null
155   ,p_replacement_required_flag     in     varchar2 default null
156   ,p_time_normal_finish            in     varchar2 default null
157   ,p_time_normal_start             in     varchar2 default null
158   ,p_status                        in     varchar2 default null
159   ,p_working_hours                 in     number   default null
160   ,p_attribute_category            in     varchar2 default null
161   ,p_attribute1                    in     varchar2 default null
162   ,p_attribute2                    in     varchar2 default null
163   ,p_attribute3                    in     varchar2 default null
164   ,p_attribute4                    in     varchar2 default null
165   ,p_attribute5                    in     varchar2 default null
166   ,p_attribute6                    in     varchar2 default null
167   ,p_attribute7                    in     varchar2 default null
168   ,p_attribute8                    in     varchar2 default null
169   ,p_attribute9                    in     varchar2 default null
170   ,p_attribute10                   in     varchar2 default null
171   ,p_attribute11                   in     varchar2 default null
172   ,p_attribute12                   in     varchar2 default null
173   ,p_attribute13                   in     varchar2 default null
174   ,p_attribute14                   in     varchar2 default null
175   ,p_attribute15                   in     varchar2 default null
176   ,p_attribute16                   in     varchar2 default null
177   ,p_attribute17                   in     varchar2 default null
178   ,p_attribute18                   in     varchar2 default null
179   ,p_attribute19                   in     varchar2 default null
180   ,p_attribute20                   in     varchar2 default null
181   ,p_segment1                      in     varchar2 default null
182   ,p_segment2                      in     varchar2 default null
183   ,p_segment3                      in     varchar2 default null
184   ,p_segment4                      in     varchar2 default null
185   ,p_segment5                      in     varchar2 default null
186   ,p_segment6                      in     varchar2 default null
187   ,p_segment7                      in     varchar2 default null
188   ,p_segment8                      in     varchar2 default null
189   ,p_segment9                      in     varchar2 default null
190   ,p_segment10                     in     varchar2 default null
191   ,p_segment11                     in     varchar2 default null
192   ,p_segment12                     in     varchar2 default null
193   ,p_segment13                     in     varchar2 default null
194   ,p_segment14                     in     varchar2 default null
195   ,p_segment15                     in     varchar2 default null
196   ,p_segment16                     in     varchar2 default null
197   ,p_segment17                     in     varchar2 default null
198   ,p_segment18                     in     varchar2 default null
199   ,p_segment19                     in     varchar2 default null
200   ,p_segment20                     in     varchar2 default null
201   ,p_segment21                     in     varchar2 default null
202   ,p_segment22                     in     varchar2 default null
203   ,p_segment23                     in     varchar2 default null
204   ,p_segment24                     in     varchar2 default null
205   ,p_segment25                     in     varchar2 default null
206   ,p_segment26                     in     varchar2 default null
207   ,p_segment27                     in     varchar2 default null
208   ,p_segment28                     in     varchar2 default null
209   ,p_segment29                     in     varchar2 default null
210   ,p_segment30                     in     varchar2 default null
211   ,p_concat_segments               in     varchar2 default null
212   ,p_position_id                        out nocopy number
213   ,p_object_version_number              out nocopy number
214   ,p_position_definition_id        in   out nocopy number
215   ,p_name                          in   out nocopy varchar2
216   );
217 --
218 -- ----------------------------------------------------------------------------
219 -- |-----------------------------< update_position >--------------------------|
220 -- ----------------------------------------------------------------------------
221 --
222 -- {Start Of Comments}
223 /*#
224  * This API updates a position and should be used if you are a Shared HR (HR
225  * Foundation) user and do not have HR fully installed.
226  *
227  * The position to be updated is identified by the in parameter p_position_id
228  * and the in out parameter p_object_version_number.
229  *
230  * <p><b>Licensing</b><br>
231  * This API version is licensed for use with HR Foundation.
232  *
233  * <p><b>Prerequisites</b><br>
234  * The position that is to be updated must already exist.
235  *
236  * <p><b>Post Success</b><br>
237  * The position is updated successfully in the database.
238  *
239  * <p><b>Post Failure</b><br>
240  * The position is not updated in the database and an error is raised.
241  * @param p_validate If true, then validation alone will be performed and the
242  * database will remain unchanged. If false and all validation checks pass,
243  * then the database will be modified.
244  * @param p_position_id Identifies the position to be modified.
245  * @param p_object_version_number Pass in the current version number of the
246  * position to be updated. When the API completes if p_validate is false, will
247  * be set to the new version number of the updated position. If p_validate is
248  * true will be set to the same value which was passed in.
249  * @param p_language_code Specifies to which language the translation values
250  * apply. You can set to the base or any installed language. The default value
251  * of hr_api.userenv_lang is equivalent to the RDBMS userenv('LANG') function
252  * value.
253  * @param p_successor_position_id Identifies the successor position.
254  * @param p_relief_position_id Identifies the relief position.
255  * @param p_location_id The location of the position.
256  * @param p_date_effective The date on which the position becomes active.
257  * @param p_comments Comment text.
258  * @param p_date_end The date on which the position is no longer active.
259  * @param p_frequency Frequency of working hours. Valid values are defined by
260  * 'FREQUENCY' lookup_type.
261  * @param p_probation_period Length of probation period.
262  * @param p_probation_period_units Units that the probation period is measured
263  * in. Valid values are defined by 'QUALIFYING_UNITS' lookup_type.
264  * @param p_replacement_required_flag Identifies if a replacement is required
265  * when person assigned is absent. Valid values are defined by 'YES_NO' lookup
266  * type.
267  * @param p_time_normal_finish Normal end time.
268  * @param p_time_normal_start Normal start time.
269  * @param p_status Position status. Valid values are defined by
270  * 'POSITION_STATUS' lookup type.
271  * @param p_working_hours Number of normal working hours.
272  * @param p_attribute_category This context value determines which flexfield
273  * structure to use with the descriptive flexfield segments.
274  * @param p_attribute1 Descriptive flexfield segment.
275  * @param p_attribute2 Descriptive flexfield segment.
276  * @param p_attribute3 Descriptive flexfield segment.
277  * @param p_attribute4 Descriptive flexfield segment.
278  * @param p_attribute5 Descriptive flexfield segment.
279  * @param p_attribute6 Descriptive flexfield segment.
280  * @param p_attribute7 Descriptive flexfield segment.
281  * @param p_attribute8 Descriptive flexfield segment.
282  * @param p_attribute9 Descriptive flexfield segment.
283  * @param p_attribute10 Descriptive flexfield segment.
284  * @param p_attribute11 Descriptive flexfield segment.
285  * @param p_attribute12 Descriptive flexfield segment.
286  * @param p_attribute13 Descriptive flexfield segment.
287  * @param p_attribute14 Descriptive flexfield segment.
288  * @param p_attribute15 Descriptive flexfield segment.
289  * @param p_attribute16 Descriptive flexfield segment.
290  * @param p_attribute17 Descriptive flexfield segment.
291  * @param p_attribute18 Descriptive flexfield segment.
292  * @param p_attribute19 Descriptive flexfield segment.
293  * @param p_attribute20 Descriptive flexfield segment.
294  * @param p_segment1 Key flexfield segment.
295  * @param p_segment2 Key flexfield segment.
296  * @param p_segment3 Key flexfield segment.
297  * @param p_segment4 Key flexfield segment.
298  * @param p_segment5 Key flexfield segment.
299  * @param p_segment6 Key flexfield segment.
300  * @param p_segment7 Key flexfield segment.
301  * @param p_segment8 Key flexfield segment.
302  * @param p_segment9 Key flexfield segment.
303  * @param p_segment10 Key flexfield segment.
304  * @param p_segment11 Key flexfield segment.
305  * @param p_segment12 Key flexfield segment.
306  * @param p_segment13 Key flexfield segment.
307  * @param p_segment14 Key flexfield segment.
308  * @param p_segment15 Key flexfield segment.
309  * @param p_segment16 Key flexfield segment.
310  * @param p_segment17 Key flexfield segment.
311  * @param p_segment18 Key flexfield segment.
312  * @param p_segment19 Key flexfield segment.
313  * @param p_segment20 Key flexfield segment.
314  * @param p_segment21 Key flexfield segment.
315  * @param p_segment22 Key flexfield segment.
316  * @param p_segment23 Key flexfield segment.
317  * @param p_segment24 Key flexfield segment.
318  * @param p_segment25 Key flexfield segment.
319  * @param p_segment26 Key flexfield segment.
320  * @param p_segment27 Key flexfield segment.
321  * @param p_segment28 Key flexfield segment.
322  * @param p_segment29 Key flexfield segment.
323  * @param p_segment30 Key flexfield segment.
324  * @param p_concat_segments Concatenated string of segment values
325  * @param p_position_definition_id If p_validate is false, then this uniquely
326  * identifies the combination of position segments created. If p_validate is
327  * true, then set to null.
328  * @param p_name If p_validate is false, then this identifies concatenation of
329  * all name segments. If p_validate is true, then set to null.
330  * @param p_valid_grades_changed_warning Set to true when either the position
331  * date effective or date end have been modified and at least one valid grade
332  * has been updated or deleted. Set to false when neither the position date
333  * effective or date end have been modified, or either of them has been
334  * modified but no valid grades were altered.
335  * @rep:displayname Update Position
336  * @rep:category BUSINESS_ENTITY PER_POSITION
337  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
338  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
339  * @rep:scope public
340  * @rep:lifecycle active
341  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
342 */
343 --
344 -- {End Of Comments}
345 --
346 procedure update_position
347   (p_validate                      in     boolean  default false
348   ,p_position_id                   in     number
349   ,p_object_version_number         in out nocopy number
350   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
351   ,p_successor_position_id         in     number   default hr_api.g_number
352   ,p_relief_position_id            in     number   default hr_api.g_number
353   ,p_location_id                   in     number   default hr_api.g_number
354   ,p_date_effective                in     date     default hr_api.g_date
355   ,p_comments                      in     varchar2 default hr_api.g_varchar2
356   ,p_date_end                      in     date     default hr_api.g_date
357   ,p_frequency                     in     varchar2 default hr_api.g_varchar2
358   ,p_probation_period              in     number   default hr_api.g_number
359   ,p_probation_period_units        in     varchar2 default hr_api.g_varchar2
360   ,p_replacement_required_flag     in     varchar2 default hr_api.g_varchar2
361   ,p_time_normal_finish	           in     varchar2 default hr_api.g_varchar2
362   ,p_time_normal_start             in     varchar2 default hr_api.g_varchar2
363   ,p_status                        in     varchar2 default hr_api.g_varchar2
364   ,p_working_hours                 in     number   default hr_api.g_number
365   ,p_attribute_category            in     varchar2 default hr_api.g_varchar2
366   ,p_attribute1                    in     varchar2 default hr_api.g_varchar2
367   ,p_attribute2                    in     varchar2 default hr_api.g_varchar2
368   ,p_attribute3                    in     varchar2 default hr_api.g_varchar2
369   ,p_attribute4                    in     varchar2 default hr_api.g_varchar2
370   ,p_attribute5                    in     varchar2 default hr_api.g_varchar2
371   ,p_attribute6                    in     varchar2 default hr_api.g_varchar2
372   ,p_attribute7                    in     varchar2 default hr_api.g_varchar2
373   ,p_attribute8                    in     varchar2 default hr_api.g_varchar2
374   ,p_attribute9                    in     varchar2 default hr_api.g_varchar2
375   ,p_attribute10                   in     varchar2 default hr_api.g_varchar2
376   ,p_attribute11                   in     varchar2 default hr_api.g_varchar2
377   ,p_attribute12                   in     varchar2 default hr_api.g_varchar2
378   ,p_attribute13                   in     varchar2 default hr_api.g_varchar2
379   ,p_attribute14                   in     varchar2 default hr_api.g_varchar2
380   ,p_attribute15                   in     varchar2 default hr_api.g_varchar2
381   ,p_attribute16                   in     varchar2 default hr_api.g_varchar2
382   ,p_attribute17                   in     varchar2 default hr_api.g_varchar2
383   ,p_attribute18                   in     varchar2 default hr_api.g_varchar2
384   ,p_attribute19                   in     varchar2 default hr_api.g_varchar2
385   ,p_attribute20                   in     varchar2 default hr_api.g_varchar2
386   ,p_segment1                      in     varchar2 default hr_api.g_varchar2
387   ,p_segment2                      in     varchar2 default hr_api.g_varchar2
388   ,p_segment3                      in     varchar2 default hr_api.g_varchar2
389   ,p_segment4                      in     varchar2 default hr_api.g_varchar2
390   ,p_segment5                      in     varchar2 default hr_api.g_varchar2
391   ,p_segment6                      in     varchar2 default hr_api.g_varchar2
392   ,p_segment7                      in     varchar2 default hr_api.g_varchar2
393   ,p_segment8                      in     varchar2 default hr_api.g_varchar2
394   ,p_segment9                      in     varchar2 default hr_api.g_varchar2
395   ,p_segment10                     in     varchar2 default hr_api.g_varchar2
396   ,p_segment11                     in     varchar2 default hr_api.g_varchar2
397   ,p_segment12                     in     varchar2 default hr_api.g_varchar2
398   ,p_segment13                     in     varchar2 default hr_api.g_varchar2
399   ,p_segment14                     in     varchar2 default hr_api.g_varchar2
400   ,p_segment15                     in     varchar2 default hr_api.g_varchar2
401   ,p_segment16                     in     varchar2 default hr_api.g_varchar2
402   ,p_segment17                     in     varchar2 default hr_api.g_varchar2
403   ,p_segment18                     in     varchar2 default hr_api.g_varchar2
404   ,p_segment19                     in     varchar2 default hr_api.g_varchar2
405   ,p_segment20                     in     varchar2 default hr_api.g_varchar2
406   ,p_segment21                     in     varchar2 default hr_api.g_varchar2
407   ,p_segment22                     in     varchar2 default hr_api.g_varchar2
408   ,p_segment23                     in     varchar2 default hr_api.g_varchar2
409   ,p_segment24                     in     varchar2 default hr_api.g_varchar2
410   ,p_segment25                     in     varchar2 default hr_api.g_varchar2
411   ,p_segment26                     in     varchar2 default hr_api.g_varchar2
412   ,p_segment27                     in     varchar2 default hr_api.g_varchar2
413   ,p_segment28                     in     varchar2 default hr_api.g_varchar2
414   ,p_segment29                     in     varchar2 default hr_api.g_varchar2
415   ,p_segment30                     in     varchar2 default hr_api.g_varchar2
416   ,p_concat_segments               in     varchar2 default hr_api.g_varchar2
417   ,p_position_definition_id        in   out nocopy number
418   ,p_name                          in   out nocopy varchar2
419   ,p_valid_grades_changed_warning       out nocopy boolean
420   );
421 --
422 -- ----------------------------------------------------------------------------
423 -- |-----------------------------< delete_position >--------------------------|
424 -- ----------------------------------------------------------------------------
425 --
426 -- {Start Of Comments}
427 /*#
428  * This API deletes a position and should be used if you are a Shared HR (HR
429  * Foundation) user and do not have HR fully installed.
430  *
431  * The position to be deleted is identified by the in parameter p_position_id
432  * and the in parameter p_object_version_number.
433  *
434  * <p><b>Licensing</b><br>
435  * This API is licensed for use with HR Foundation.
436  *
437  * <p><b>Prerequisites</b><br>
438  * The position to be deleted must already exist. The position to be deleted
439  * must not be used in any assignment.
440  *
441  * <p><b>Post Success</b><br>
442  * The position is deleted successfully from the database.
443  *
444  * <p><b>Post Failure</b><br>
445  * The position is not deleted from the database and error is raised.
446  * @param p_validate If true, then validation alone will be performed and the
447  * database will remain unchanged. If false and all validation checks pass,
448  * then the database will be modified.
449  * @param p_position_id Identifies the position to be deleted.
450  * @param p_object_version_number Current version number of the position to be
451  * deleted.
452  * @rep:displayname Delete Position
453  * @rep:category BUSINESS_ENTITY PER_POSITION
454  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
455  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
456  * @rep:scope public
457  * @rep:lifecycle active
458  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
459 */
460 --
461 -- {End Of Comments}
462 --
463 procedure delete_position(
464   p_validate boolean  default false,
465   p_position_id number,
466   p_object_version_number number
467   );
468 --
469 -- ----------------------------------------------------------------------------
470 -- |------------------------< lck >-------------------------------------------|
471 -- ----------------------------------------------------------------------------
472 -- NON DATETRACK LOCK
473 procedure lck
474   (
475    p_position_id                   in     number
476   ,p_object_version_number          in     number
477   ,p_language_code                 in     varchar2 default hr_api.userenv_lang
478   );
479 --
480 -- ----------------------------------------------------------------------------
481 -- |-----------------------------< create_position >--------------------------|
482 -- ----------------------------------------------------------------------------
483 --
484 -- {Start Of Comments}
485 /*#
486  * This API creates a position which is a specific occurrence of a job within
487  * an organization and should be used if you have HR fully installed.
488  *
489  * This overload version provides DateTrack features. Based on the position
490  * definition segments which are passed a position definition id is selected
491  * for the position, or a new position definition record is created.
492  *
493  * <p><b>Licensing</b><br>
494  * This API version is licensed for use with Human Resources.
495  *
496  * <p><b>Prerequisites</b><br>
497  * A valid organization and job must be passed to the API. Also at least one
498  * segment for position definition must have a value.
499  *
500  * <p><b>Post Success</b><br>
501  * The position will be created successfully in the database.
502  *
503  * <p><b>Post Failure</b><br>
504  * The position will not be created and an error will be raised.
505  * @param p_position_id If p_validate is false, then this uniquely identifies
506  * the position created. If p_validate is true, then set to null.
507  * @param p_effective_start_date If p_validate is false, then set to the
508  * earliest effective start date for the created position. If p_validate is
509  * true, then set to null.
510  * @param p_effective_end_date If p_validate is false, then set to the
511  * effective end date for the created position. If p_validate is true, then set
512  * to null.
513  * @param p_position_definition_id If p_validate is false, then this uniquely
514  * identifies the combination of position segments created. If p_validate is
515  * true, then set to null.
516  * @param p_name If p_validate is false, then this identifies concatenation of
517  * all name segments. If p_validate is true, then set to null.
518  * @param p_object_version_number If p_validate is false, then set to the
519  * version number of the created position. If p_validate is true, then the
520  * value will be null.
521  * @param p_job_id The job for the position.
522  * @param p_organization_id The organization to which the position belongs.
523  * @param p_effective_date Determines when the DateTrack operation comes into
524  * force.
525  * @param p_date_effective The date on which the position becomes active.
526  * @param p_language_code Specifies to which language the translation values
527  * apply. You can set to the base or any installed language. The default value
528  * of hr_api.userenv_lang is equivalent to the RDBMS userenv('LANG') function
529  * value.
530  * @param p_validate If true, then validation alone will be performed and the
531  * database will remain unchanged. If false and all validation checks pass,
532  * then the database will be modified.
533  * @param p_availability_status_id Current status of the position. Refers to
534  * PER_SHARED_TYPES.
535  * @param p_business_group_id {@rep:casecolumn
536  * HR_ALL_POSITIONS_F.BUSINESS_GROUP_ID}
537  * @param p_entry_step_id {@rep:casecolumn HR_ALL_POSITIONS_F.ENTRY_STEP_ID}
538  * @param p_entry_grade_rule_id {@rep:casecolumn
539  * HR_ALL_POSITIONS_F.ENTRY_GRADE_RULE_ID}
540  * @param p_location_id {@rep:casecolumn HR_ALL_POSITIONS_F.LOCATION_ID}
541  * @param p_pay_freq_payroll_id {@rep:casecolumn
542  * HR_ALL_POSITIONS_F.PAY_FREQ_PAYROLL_ID}
543  * @param p_position_transaction_id {@rep:casecolumn
544  * HR_ALL_POSITIONS_F.POSITION_TRANSACTION_ID}
545  * @param p_prior_position_id {@rep:casecolumn
546  * HR_ALL_POSITIONS_F.PRIOR_POSITION_ID}
547  * @param p_relief_position_id {@rep:casecolumn
548  * HR_ALL_POSITIONS_F.RELIEF_POSITION_ID}
549  * @param p_entry_grade_id {@rep:casecolumn HR_ALL_POSITIONS_F.ENTRY_GRADE_ID}
550  * @param p_successor_position_id {@rep:casecolumn
551  * HR_ALL_POSITIONS_F.SUCCESSOR_POSITION_ID}
552  * @param p_supervisor_position_id {@rep:casecolumn
553  * HR_ALL_POSITIONS_F.SUPERVISOR_POSITION_ID}
554  * @param p_amendment_date {@rep:casecolumn HR_ALL_POSITIONS_F.AMENDMENT_DATE}
555  * @param p_amendment_recommendation {@rep:casecolumn
556  * HR_ALL_POSITIONS_F.AMENDMENT_RECOMMENDATION}
557  * @param p_amendment_ref_number {@rep:casecolumn
558  * HR_ALL_POSITIONS_F.AMENDMENT_REF_NUMBER}
559  * @param p_bargaining_unit_cd Identifies the bargaining unit. Valid values are
560  * defined by 'BARGAINING_UNIT_CODE' lookup_type.
561  * @param p_comments Comment text.
562  * @param p_current_job_prop_end_date {@rep:casecolumn
563  * HR_ALL_POSITIONS_F.CURRENT_JOB_PROP_END_DATE}
564  * @param p_current_org_prop_end_date {@rep:casecolumn
565  * HR_ALL_POSITIONS_F.CURRENT_ORG_PROP_END_DATE}
566  * @param p_avail_status_prop_end_date {@rep:casecolumn
567  * HR_ALL_POSITIONS_F.AVAIL_STATUS_PROP_END_DATE}
568  * @param p_date_end {@rep:casecolumn HR_ALL_POSITIONS_F.DATE_END}
569  * @param p_earliest_hire_date {@rep:casecolumn
570  * HR_ALL_POSITIONS_F.EARLIEST_HIRE_DATE}
571  * @param p_fill_by_date {@rep:casecolumn HR_ALL_POSITIONS_F.FILL_BY_DATE}
572  * @param p_frequency Frequency of working hours. Valid values are defined by
573  * 'FREQUENCY' lookup_type.
574  * @param p_fte {@rep:casecolumn HR_ALL_POSITIONS_F.FTE}
575  * @param p_max_persons Maximum number of employees allowed for this position.
576  * @param p_overlap_period {@rep:casecolumn HR_ALL_POSITIONS_F.OVERLAP_PERIOD}
577  * @param p_overlap_unit_cd Unit of period. Valid values are defined by
578  * 'QUALIFYING_UNITS' lookup_type.
579  * @param p_pay_term_end_day_cd End day of pay term. Valid values are defined
580  * by 'DAY_CODE' lookup_type.
581  * @param p_pay_term_end_month_cd End month of pay term. Valid values are
582  * defined by 'MONTH_CODE' lookup_type.
583  * @param p_permanent_temporary_flag Indicates whether position is temporary or
584  * permanent. Valid values are defined by 'YES_NO' lookup_type
585  * @param p_permit_recruitment_flag Indicates if recruitment can start for the
586  * position or not. Valid values are defined by 'YES_NO' lookup_type
587  * @param p_position_type Indicates position type. Valid values are defined by
588  * 'POSITION_TYPE' lookup_type
589  * @param p_posting_description Posting description.
590  * @param p_probation_period Length of probation period.
591  * @param p_probation_period_unit_cd Qualifying units. Valid values are defined
592  * by 'QUALIFYING_UNITS' lookup_type.
593  * @param p_replacement_required_flag Identifies if replacement is required
594  * when person assigned is absent. Valid values are defined by 'YES_NO' lookup
595  * type.
596  * @param p_review_flag Identifies whether the characteristics of the position
597  * are under going review or change. Valid values are defined by 'YES_NO'
598  * lookup_type
599  * @param p_seasonal_flag Identifies if the position is seasonal or not. Valid
600  * values are defined by 'YES_NO' lookup_type
601  * @param p_security_requirements Security requirements.
602  * @param p_status Position status. Valid values are defined by
603  * 'POSITION_STATUS' lookup type.
604  * @param p_term_start_day_cd Start day of work term. Valid values are defined
605  * by 'DAY_CODE' lookup_type.
606  * @param p_term_start_month_cd Start month of work term. Valid values are
607  * defined by 'MONTH_CODE' lookup_type.
608  * @param p_time_normal_finish Normal end time.
609  * @param p_time_normal_start Normal start time.
610  * @param p_update_source_cd Identifies if the position has to be copied into
611  * the non datetracked table per_all_positions.Valid values are defined by
612  * 'YES_NO' lookup_type
613  * @param p_working_hours Number of normal working hours.
614  * @param p_works_council_approval_flag Identifies if work council approval is
615  * needed or not. Valid values are defined by 'YES_NO' lookup_type
616  * @param p_work_period_type_cd Identifies that the position is only used
617  * during part of the year. Valid values are defined by 'YES_NO' lookup_type
618  * @param p_work_term_end_day_cd End day of work term. Valid values are defined
619  * by 'DAY_CODE' lookup_type.
620  * @param p_work_term_end_month_cd Start day of work term. Valid values are
621  * defined by 'MONTH_CODE' lookup_type.
622  * @param p_proposed_fte_for_layoff Proposed FTE for layoff
623  * @param p_proposed_date_for_layoff Proposed date for layoff
624  * @param p_pay_basis_id Foreign Key to per_pay_bases.
625  * @param p_supervisor_id Foreign Key to per_all_people_f.
626  * @param p_information1 Developer descriptive flexfield segment.
627  * @param p_information2 Developer descriptive flexfield segment.
628  * @param p_information3 Developer descriptive flexfield segment.
629  * @param p_information4 Developer descriptive flexfield segment.
630  * @param p_information5 Developer descriptive flexfield segment.
631  * @param p_information6 Developer descriptive flexfield segment.
632  * @param p_information7 Developer descriptive flexfield segment.
633  * @param p_information8 Developer descriptive flexfield segment.
634  * @param p_information9 Developer descriptive flexfield segment.
635  * @param p_information10 Developer descriptive flexfield segment.
636  * @param p_information11 Developer descriptive flexfield segment.
637  * @param p_information12 Developer descriptive flexfield segment.
638  * @param p_information13 Developer descriptive flexfield segment.
639  * @param p_information14 Developer descriptive flexfield segment.
640  * @param p_information15 Developer descriptive flexfield segment.
641  * @param p_information16 Developer descriptive flexfield segment.
642  * @param p_information17 Developer descriptive flexfield segment.
643  * @param p_information18 Developer descriptive flexfield segment.
644  * @param p_information19 Developer descriptive flexfield segment.
645  * @param p_information20 Developer descriptive flexfield segment.
646  * @param p_information21 Developer descriptive flexfield segment.
647  * @param p_information22 Developer descriptive flexfield segment.
648  * @param p_information23 Developer descriptive flexfield segment.
649  * @param p_information24 Developer descriptive flexfield segment.
650  * @param p_information25 Developer descriptive flexfield segment.
651  * @param p_information26 Developer descriptive flexfield segment.
652  * @param p_information27 Developer descriptive flexfield segment.
653  * @param p_information28 Developer descriptive flexfield segment.
654  * @param p_information29 Developer descriptive flexfield segment.
655  * @param p_information30 Developer descriptive flexfield segment.
656  * @param p_information_category This context value determines which flexfield
657  * structure to use with the developer descriptive flexfield segments.
658  * @param p_attribute1 Descriptive flexfield segment.
659  * @param p_attribute2 Descriptive flexfield segment.
660  * @param p_attribute3 Descriptive flexfield segment.
661  * @param p_attribute4 Descriptive flexfield segment.
662  * @param p_attribute5 Descriptive flexfield segment.
663  * @param p_attribute6 Descriptive flexfield segment.
664  * @param p_attribute7 Descriptive flexfield segment.
665  * @param p_attribute8 Descriptive flexfield segment.
666  * @param p_attribute9 Descriptive flexfield segment.
667  * @param p_attribute10 Descriptive flexfield segment.
668  * @param p_attribute11 Descriptive flexfield segment.
669  * @param p_attribute12 Descriptive flexfield segment.
670  * @param p_attribute13 Descriptive flexfield segment.
671  * @param p_attribute14 Descriptive flexfield segment.
672  * @param p_attribute15 Descriptive flexfield segment.
673  * @param p_attribute16 Descriptive flexfield segment.
674  * @param p_attribute17 Descriptive flexfield segment.
675  * @param p_attribute18 Descriptive flexfield segment.
676  * @param p_attribute19 Descriptive flexfield segment.
677  * @param p_attribute20 Descriptive flexfield segment.
678  * @param p_attribute21 Descriptive flexfield segment.
679  * @param p_attribute22 Descriptive flexfield segment.
680  * @param p_attribute23 Descriptive flexfield segment.
681  * @param p_attribute24 Descriptive flexfield segment.
682  * @param p_attribute25 Descriptive flexfield segment.
683  * @param p_attribute26 Descriptive flexfield segment.
684  * @param p_attribute27 Descriptive flexfield segment.
685  * @param p_attribute28 Descriptive flexfield segment.
686  * @param p_attribute29 Descriptive flexfield segment.
687  * @param p_attribute30 Descriptive flexfield segment.
688  * @param p_attribute_category This context value determines which flexfield
689  * structure to use with the descriptive flexfield segments.
690  * @param p_segment1 Key flexfield segment.
691  * @param p_segment2 Key flexfield segment.
692  * @param p_segment3 Key flexfield segment.
693  * @param p_segment4 Key flexfield segment.
694  * @param p_segment5 Key flexfield segment.
695  * @param p_segment6 Key flexfield segment.
696  * @param p_segment7 Key flexfield segment.
697  * @param p_segment8 Key flexfield segment.
698  * @param p_segment9 Key flexfield segment.
699  * @param p_segment10 Key flexfield segment.
700  * @param p_segment11 Key flexfield segment.
701  * @param p_segment12 Key flexfield segment.
702  * @param p_segment13 Key flexfield segment.
703  * @param p_segment14 Key flexfield segment.
704  * @param p_segment15 Key flexfield segment.
705  * @param p_segment16 Key flexfield segment.
706  * @param p_segment17 Key flexfield segment.
707  * @param p_segment18 Key flexfield segment.
708  * @param p_segment19 Key flexfield segment.
709  * @param p_segment20 Key flexfield segment.
710  * @param p_segment21 Key flexfield segment.
711  * @param p_segment22 Key flexfield segment.
712  * @param p_segment23 Key flexfield segment.
713  * @param p_segment24 Key flexfield segment.
714  * @param p_segment25 Key flexfield segment.
715  * @param p_segment26 Key flexfield segment.
716  * @param p_segment27 Key flexfield segment.
717  * @param p_segment28 Key flexfield segment.
718  * @param p_segment29 Key flexfield segment.
719  * @param p_segment30 Key flexfield segment.
720  * @param p_concat_segments Concatenated string of segment values
721  * @param p_request_id When the API is executed from a concurrent program set
722  * to the concurrent request identifier.
723  * @param p_program_application_id When the API is executed from a concurrent
724  * program set to the program's Application.
725  * @param p_program_id When the API is executed from a concurrent program set
726  * to the program's identifier.
727  * @param p_program_update_date When the API is executed from a concurrent
728  * program set to when the program was ran.
729  * @param p_security_profile_id Security Profile to which the position is
730  * added.
731  * @rep:displayname Create Position
732  * @rep:category BUSINESS_ENTITY PER_POSITION
733  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
734  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
735  * @rep:primaryinstance
736  * @rep:scope public
737  * @rep:lifecycle active
738  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
739 */
740 --
741 -- {End Of Comments}
742 --
743 procedure create_position
744   (p_position_id                    out nocopy number
745   ,p_effective_start_date           out nocopy date
746   ,p_effective_end_date             out nocopy date
747   ,p_position_definition_id         in out nocopy number
748   ,p_name                           in out nocopy varchar2
749   ,p_object_version_number          out nocopy number
750   ,p_job_id                         in  number
751   ,p_organization_id                in  number
752   ,p_effective_date                 in  date
753   ,p_date_effective                 in  date
754   ,p_language_code                  in  varchar2  default hr_api.userenv_lang
755   ,p_validate                       in  boolean   default false
756   ,p_availability_status_id         in  number    default null
757   ,p_business_group_id              in  number    default null
758   ,p_entry_step_id                  in  number    default null
759   ,p_entry_grade_rule_id            in  number    default null
760   ,p_location_id                    in  number    default null
761   ,p_pay_freq_payroll_id            in  number    default null
762   ,p_position_transaction_id        in  number    default null
763   ,p_prior_position_id              in  number    default null
764   ,p_relief_position_id             in  number    default null
765   ,p_entry_grade_id                 in  number    default null
766   ,p_successor_position_id          in  number    default null
767   ,p_supervisor_position_id         in  number    default null
768   ,p_amendment_date                 in  date      default null
769   ,p_amendment_recommendation       in  varchar2  default null
770   ,p_amendment_ref_number           in  varchar2  default null
771   ,p_bargaining_unit_cd             in  varchar2  default null
772   ,p_comments                       in  long      default null
773   ,p_current_job_prop_end_date      in  date      default null
774   ,p_current_org_prop_end_date      in  date      default null
775   ,p_avail_status_prop_end_date     in  date      default null
776   ,p_date_end                       in  date      default null
777   ,p_earliest_hire_date             in  date      default null
778   ,p_fill_by_date                   in  date      default null
779   ,p_frequency                      in  varchar2  default null
780   ,p_fte                            in  number    default null
781   ,p_max_persons                    in  number    default null
782   ,p_overlap_period                 in  number    default null
783   ,p_overlap_unit_cd                in  varchar2  default null
784   ,p_pay_term_end_day_cd            in  varchar2  default null
785   ,p_pay_term_end_month_cd          in  varchar2  default null
786   ,p_permanent_temporary_flag       in  varchar2  default null
787   ,p_permit_recruitment_flag        in  varchar2  default null
788   ,p_position_type                  in  varchar2  default 'NONE'
789   ,p_posting_description            in  varchar2  default null
790   ,p_probation_period               in  number    default null
791   ,p_probation_period_unit_cd       in  varchar2  default null
792   ,p_replacement_required_flag      in  varchar2  default null
793   ,p_review_flag                    in  varchar2  default null
794   ,p_seasonal_flag                  in  varchar2  default null
795   ,p_security_requirements          in  varchar2  default null
796   ,p_status                         in  varchar2  default null
797   ,p_term_start_day_cd              in  varchar2  default null
798   ,p_term_start_month_cd            in  varchar2  default null
799   ,p_time_normal_finish             in  varchar2  default null
800   ,p_time_normal_start              in  varchar2  default null
801   ,p_update_source_cd               in  varchar2  default null
802   ,p_working_hours                  in  number    default null
803   ,p_works_council_approval_flag    in  varchar2  default null
804   ,p_work_period_type_cd            in  varchar2  default null
805   ,p_work_term_end_day_cd           in  varchar2  default null
806   ,p_work_term_end_month_cd         in  varchar2  default null
807   ,p_proposed_fte_for_layoff        in  number    default null
808   ,p_proposed_date_for_layoff       in  date      default null
809   ,p_pay_basis_id                   in  number    default null
810   ,p_supervisor_id                  in  number    default null
811   -- ,p_copied_to_old_table_flag       in  varchar2  default null
812   ,p_information1                   in  varchar2  default null
813   ,p_information2                   in  varchar2  default null
814   ,p_information3                   in  varchar2  default null
815   ,p_information4                   in  varchar2  default null
816   ,p_information5                   in  varchar2  default null
817   ,p_information6                   in  varchar2  default null
818   ,p_information7                   in  varchar2  default null
819   ,p_information8                   in  varchar2  default null
820   ,p_information9                   in  varchar2  default null
821   ,p_information10                  in  varchar2  default null
822   ,p_information11                  in  varchar2  default null
823   ,p_information12                  in  varchar2  default null
824   ,p_information13                  in  varchar2  default null
825   ,p_information14                  in  varchar2  default null
826   ,p_information15                  in  varchar2  default null
827   ,p_information16                  in  varchar2  default null
828   ,p_information17                  in  varchar2  default null
829   ,p_information18                  in  varchar2  default null
830   ,p_information19                  in  varchar2  default null
831   ,p_information20                  in  varchar2  default null
832   ,p_information21                  in  varchar2  default null
833   ,p_information22                  in  varchar2  default null
834   ,p_information23                  in  varchar2  default null
835   ,p_information24                  in  varchar2  default null
836   ,p_information25                  in  varchar2  default null
837   ,p_information26                  in  varchar2  default null
838   ,p_information27                  in  varchar2  default null
839   ,p_information28                  in  varchar2  default null
840   ,p_information29                  in  varchar2  default null
841   ,p_information30                  in  varchar2  default null
842   ,p_information_category           in  varchar2  default null
843   ,p_attribute1                     in  varchar2  default null
844   ,p_attribute2                     in  varchar2  default null
845   ,p_attribute3                     in  varchar2  default null
846   ,p_attribute4                     in  varchar2  default null
847   ,p_attribute5                     in  varchar2  default null
848   ,p_attribute6                     in  varchar2  default null
849   ,p_attribute7                     in  varchar2  default null
850   ,p_attribute8                     in  varchar2  default null
851   ,p_attribute9                     in  varchar2  default null
852   ,p_attribute10                    in  varchar2  default null
853   ,p_attribute11                    in  varchar2  default null
854   ,p_attribute12                    in  varchar2  default null
855   ,p_attribute13                    in  varchar2  default null
856   ,p_attribute14                    in  varchar2  default null
857   ,p_attribute15                    in  varchar2  default null
858   ,p_attribute16                    in  varchar2  default null
859   ,p_attribute17                    in  varchar2  default null
860   ,p_attribute18                    in  varchar2  default null
861   ,p_attribute19                    in  varchar2  default null
862   ,p_attribute20                    in  varchar2  default null
863   ,p_attribute21                    in  varchar2  default null
864   ,p_attribute22                    in  varchar2  default null
865   ,p_attribute23                    in  varchar2  default null
866   ,p_attribute24                    in  varchar2  default null
867   ,p_attribute25                    in  varchar2  default null
868   ,p_attribute26                    in  varchar2  default null
869   ,p_attribute27                    in  varchar2  default null
870   ,p_attribute28                    in  varchar2  default null
871   ,p_attribute29                    in  varchar2  default null
872   ,p_attribute30                    in  varchar2  default null
873   ,p_attribute_category             in  varchar2  default null
874   ,p_segment1                       in  varchar2  default null
875   ,p_segment2                       in  varchar2  default null
876   ,p_segment3                       in  varchar2  default null
877   ,p_segment4                       in  varchar2  default null
878   ,p_segment5                       in  varchar2  default null
879   ,p_segment6                       in  varchar2  default null
880   ,p_segment7                       in  varchar2  default null
881   ,p_segment8                       in  varchar2  default null
882   ,p_segment9                       in  varchar2  default null
883   ,p_segment10                      in  varchar2  default null
884   ,p_segment11                      in  varchar2  default null
885   ,p_segment12                      in  varchar2  default null
886   ,p_segment13                      in  varchar2  default null
887   ,p_segment14                      in  varchar2  default null
888   ,p_segment15                      in  varchar2  default null
889   ,p_segment16                      in  varchar2  default null
890   ,p_segment17                      in  varchar2  default null
891   ,p_segment18                      in  varchar2  default null
892   ,p_segment19                      in  varchar2  default null
893   ,p_segment20                      in  varchar2  default null
894   ,p_segment21                      in  varchar2  default null
895   ,p_segment22                      in  varchar2  default null
896   ,p_segment23                      in  varchar2  default null
897   ,p_segment24                      in  varchar2  default null
898   ,p_segment25                      in  varchar2  default null
899   ,p_segment26                      in  varchar2  default null
900   ,p_segment27                      in  varchar2  default null
901   ,p_segment28                      in  varchar2  default null
902   ,p_segment29                      in  varchar2  default null
903   ,p_segment30                      in  varchar2  default null
904   ,p_concat_segments                in  varchar2  default null
905   ,p_request_id                     in  number    default null
906   ,p_program_application_id         in  number    default null
907   ,p_program_id                     in  number    default null
908   ,p_program_update_date            in  date      default null
909   ,p_security_profile_id	    in number	  default hr_security.get_security_profile
910   ) ;
911 --
912 -- ----------------------------------------------------------------------------
913 -- |-----------------------------< update_position >--------------------------|
914 -- ----------------------------------------------------------------------------
915 --
916 -- {Start Of Comments}
917 /*#
918  * This API updates a position and should be used if you have HR fully
919  * installed.
920  *
921  * This overload version provides DateTrack features.
922  *
923  * <p><b>Licensing</b><br>
924  * This API version is licensed for use with Human Resources.
925  *
926  * <p><b>Prerequisites</b><br>
927  * The position to be updated must already exist.
928  *
929  * <p><b>Post Success</b><br>
930  * When the position is valid, the API updates the position successfully in the
931  * database.
932  *
933  * <p><b>Post Failure</b><br>
934  * The position will not be updated and an error will be raised.
935  * @param p_validate If true, then validation alone will be performed and the
936  * database will remain unchanged. If false and all validation checks pass,
937  * then the database will be modified.
938  * @param p_position_id Identifies the position to be modified.
939  * @param p_effective_start_date If p_validate is false, then set to the
940  * effective start date on the updated position row which now exists as of the
941  * effective date. If p_validate is true, then set to null.
942  * @param p_effective_end_date If p_validate is false, then set to the
943  * effective end date on the updated position row which now exists as of the
944  * effective date. If p_validate is true, then set to null.
945  * @param p_position_definition_id If p_validate is false, then this uniquely
946  * identifes the combination of segments passed. If p_validate is true, then
947  * set to null.
948  * @param p_valid_grades_changed_warning Set to true when either the position
949  * date effective or date end have been modified and at least one valid grade
950  * has been updated or deleted. Set to false when neither the position date
951  * effective or date end have been modified, or either of them has been
952  * modified but no valid grades were altered.
953  * @param p_name If p_validate is false, then this identifies concatenation of
954  * all name segments. If p_validate is true, then set to null.
955  * @param p_language_code Specifies to which language the translation values
956  * apply. You can set to the base or any installed language. The default value
957  * of hr_api.userenv_lang is equivalent to the RDBMS userenv('LANG') function
958  * value.
959  * @param p_availability_status_id Current Status of the Position. Refers to
960  * PER_SHARED_TYPES.
961  * @param p_entry_step_id {@rep:casecolumn HR_ALL_POSITIONS_F.ENTRY_STEP_ID}
962  * @param p_entry_grade_rule_id {@rep:casecolumn
963  * HR_ALL_POSITIONS_F.ENTRY_GRADE_RULE_ID}
964  * @param p_location_id {@rep:casecolumn HR_ALL_POSITIONS_F.LOCATION_ID}
965  * @param p_pay_freq_payroll_id {@rep:casecolumn
966  * HR_ALL_POSITIONS_F.PAY_FREQ_PAYROLL_ID}
967  * @param p_position_transaction_id {@rep:casecolumn
968  * HR_ALL_POSITIONS_F.POSITION_TRANSACTION_ID}
969  * @param p_prior_position_id {@rep:casecolumn
970  * HR_ALL_POSITIONS_F.PRIOR_POSITION_ID}
971  * @param p_relief_position_id {@rep:casecolumn
972  * HR_ALL_POSITIONS_F.RELIEF_POSITION_ID}
973  * @param p_entry_grade_id {@rep:casecolumn HR_ALL_POSITIONS_F.ENTRY_GRADE_ID}
974  * @param p_successor_position_id {@rep:casecolumn
975  * HR_ALL_POSITIONS_F.SUCCESSOR_POSITION_ID}
976  * @param p_supervisor_position_id {@rep:casecolumn
977  * HR_ALL_POSITIONS_F.SUPERVISOR_POSITION_ID}
978  * @param p_amendment_date {@rep:casecolumn HR_ALL_POSITIONS_F.AMENDMENT_DATE}
979  * @param p_amendment_recommendation {@rep:casecolumn
980  * HR_ALL_POSITIONS_F.AMENDMENT_RECOMMENDATION}
981  * @param p_amendment_ref_number {@rep:casecolumn
982  * HR_ALL_POSITIONS_F.AMENDMENT_REF_NUMBER}
983  * @param p_bargaining_unit_cd Identifies the bargaining unit. Valid values are
984  * defined by 'BARGAINING_UNIT_CODE' lookup_type.
985  * @param p_comments Comment text.
986  * @param p_current_job_prop_end_date {@rep:casecolumn
987  * HR_ALL_POSITIONS_F.CURRENT_JOB_PROP_END_DATE}
988  * @param p_current_org_prop_end_date {@rep:casecolumn
989  * HR_ALL_POSITIONS_F.CURRENT_ORG_PROP_END_DATE}
990  * @param p_avail_status_prop_end_date {@rep:casecolumn
991  * HR_ALL_POSITIONS_F.AVAIL_STATUS_PROP_END_DATE}
992  * @param p_date_effective The date on which the position becomes active.
993  * @param p_date_end {@rep:casecolumn HR_ALL_POSITIONS_F.DATE_END}
994  * @param p_earliest_hire_date {@rep:casecolumn
995  * HR_ALL_POSITIONS_F.EARLIEST_HIRE_DATE}
996  * @param p_fill_by_date {@rep:casecolumn HR_ALL_POSITIONS_F.FILL_BY_DATE}
997  * @param p_frequency Frequency of working hours. Valid values are defined by
998  * 'FREQUENCY' lookup_type.
999  * @param p_fte {@rep:casecolumn HR_ALL_POSITIONS_F.FTE}
1000  * @param p_max_persons Maximum number of employees allowed for this position.
1001  * @param p_overlap_period {@rep:casecolumn HR_ALL_POSITIONS_F.OVERLAP_PERIOD}
1002  * @param p_overlap_unit_cd Unit of period. Valid values are defined by
1003  * 'QUALIFYING_UNITS' lookup_type.
1004  * @param p_pay_term_end_day_cd End day of pay term. Valid values are defined
1005  * by 'DAY_CODE' lookup_type.
1006  * @param p_pay_term_end_month_cd End month of pay term. Valid values are
1007  * defined by 'MONTH_CODE' lookup_type.
1008  * @param p_permanent_temporary_flag Indicates whether position is temporary or
1009  * permanent. Valid values are defined by 'YES_NO' lookup_type
1010  * @param p_permit_recruitment_flag Indicates if recruitment can start for the
1011  * position or not. Valid values are defined by 'YES_NO' lookup_type
1012  * @param p_position_type Indicates position type. Valid values are defined by
1013  * 'POSITION_TYPE' lookup_type
1014  * @param p_posting_description Posting Description.
1015  * @param p_probation_period Length of probation period.
1016  * @param p_probation_period_unit_cd Qualifying units. Valid values are defined
1017  * by 'QUALIFYING_UNITS' lookup_type.
1018  * @param p_replacement_required_flag Identifies if replacement is required
1019  * when person assigned is absent. Valid values are defined by 'YES_NO' lookup
1020  * type.
1021  * @param p_review_flag Identifies whether the characteristics of the position
1022  * are under going review or change. Valid values are defined by 'YES_NO'
1023  * lookup_type
1024  * @param p_seasonal_flag Identifies if the position is seasonal or not. Valid
1025  * values are defined by 'YES_NO' lookup_type
1026  * @param p_security_requirements Security Requirements.
1027  * @param p_status Position status. Valid values are defined by
1028  * 'POSITION_STATUS' lookup type.
1029  * @param p_term_start_day_cd Start day of work term. Valid values are defined
1030  * by 'DAY_CODE' lookup_type.
1031  * @param p_term_start_month_cd Start month of work term. Valid values are
1032  * defined by 'MONTH_CODE' lookup_type.
1033  * @param p_time_normal_finish Normal end time.
1034  * @param p_time_normal_start Normal start time.
1035  * @param p_update_source_cd Identifies if the position has to be copied into
1036  * the non datetracked table per_all_positions.Valid values are defined by
1037  * 'YES_NO' lookup_type
1038  * @param p_working_hours Number of normal working hours.
1039  * @param p_works_council_approval_flag Identifies if work council approval is
1040  * needed or not. Valid values are defined by 'YES_NO' lookup_type
1041  * @param p_work_period_type_cd Identifies that the position is only used
1042  * during part of the year. Valid values are defined by 'YES_NO' lookup_type
1043  * @param p_work_term_end_day_cd End day of work term. Valid values are defined
1044  * by 'DAY_CODE' lookup_type.
1045  * @param p_work_term_end_month_cd Start day of work term. Valid values are
1046  * defined by 'MONTH_CODE' lookup_type.
1047  * @param p_proposed_fte_for_layoff Proposed FTE for layoff
1048  * @param p_proposed_date_for_layoff Proposed date for layoff
1049  * @param p_pay_basis_id Foreign Key to per_pay_bases.
1050  * @param p_supervisor_id Foreign Key to per_all_people_f.
1051  * @param p_information1 Developer descriptive flexfield segment.
1052  * @param p_information2 Developer descriptive flexfield segment.
1053  * @param p_information3 Developer descriptive flexfield segment.
1054  * @param p_information4 Developer descriptive flexfield segment.
1055  * @param p_information5 Developer descriptive flexfield segment.
1056  * @param p_information6 Developer descriptive flexfield segment.
1057  * @param p_information7 Developer descriptive flexfield segment.
1058  * @param p_information8 Developer descriptive flexfield segment.
1059  * @param p_information9 Developer descriptive flexfield segment.
1060  * @param p_information10 Developer descriptive flexfield segment.
1061  * @param p_information11 Developer descriptive flexfield segment.
1062  * @param p_information12 Developer descriptive flexfield segment.
1063  * @param p_information13 Developer descriptive flexfield segment.
1064  * @param p_information14 Developer descriptive flexfield segment.
1065  * @param p_information15 Developer descriptive flexfield segment.
1066  * @param p_information16 Developer descriptive flexfield segment.
1067  * @param p_information17 Developer descriptive flexfield segment.
1068  * @param p_information18 Developer descriptive flexfield segment.
1069  * @param p_information19 Developer descriptive flexfield segment.
1070  * @param p_information20 Developer descriptive flexfield segment.
1071  * @param p_information21 Developer descriptive flexfield segment.
1072  * @param p_information22 Developer descriptive flexfield segment.
1073  * @param p_information23 Developer descriptive flexfield segment.
1074  * @param p_information24 Developer descriptive flexfield segment.
1075  * @param p_information25 Developer descriptive flexfield segment.
1076  * @param p_information26 Developer descriptive flexfield segment.
1077  * @param p_information27 Developer descriptive flexfield segment.
1078  * @param p_information28 Developer descriptive flexfield segment.
1079  * @param p_information29 Developer descriptive flexfield segment.
1080  * @param p_information30 Developer descriptive flexfield segment.
1081  * @param p_information_category This context value determines which flexfield
1082  * structure to use with the developer descriptive flexfield segments.
1083  * @param p_attribute1 Descriptive flexfield segment.
1084  * @param p_attribute2 Descriptive flexfield segment.
1085  * @param p_attribute3 Descriptive flexfield segment.
1086  * @param p_attribute4 Descriptive flexfield segment.
1087  * @param p_attribute5 Descriptive flexfield segment.
1088  * @param p_attribute6 Descriptive flexfield segment.
1089  * @param p_attribute7 Descriptive flexfield segment.
1090  * @param p_attribute8 Descriptive flexfield segment.
1091  * @param p_attribute9 Descriptive flexfield segment.
1092  * @param p_attribute10 Descriptive flexfield segment.
1093  * @param p_attribute11 Descriptive flexfield segment.
1094  * @param p_attribute12 Descriptive flexfield segment.
1095  * @param p_attribute13 Descriptive flexfield segment.
1096  * @param p_attribute14 Descriptive flexfield segment.
1097  * @param p_attribute15 Descriptive flexfield segment.
1098  * @param p_attribute16 Descriptive flexfield segment.
1099  * @param p_attribute17 Descriptive flexfield segment.
1100  * @param p_attribute18 Descriptive flexfield segment.
1101  * @param p_attribute19 Descriptive flexfield segment.
1102  * @param p_attribute20 Descriptive flexfield segment.
1103  * @param p_attribute21 Descriptive flexfield segment.
1104  * @param p_attribute22 Descriptive flexfield segment.
1105  * @param p_attribute23 Descriptive flexfield segment.
1106  * @param p_attribute24 Descriptive flexfield segment.
1107  * @param p_attribute25 Descriptive flexfield segment.
1108  * @param p_attribute26 Descriptive flexfield segment.
1109  * @param p_attribute27 Descriptive flexfield segment.
1110  * @param p_attribute28 Descriptive flexfield segment.
1111  * @param p_attribute29 Descriptive flexfield segment.
1112  * @param p_attribute30 Descriptive flexfield segment.
1113  * @param p_attribute_category This context value determines which flexfield
1114  * structure to use with the descriptive flexfield segments.
1115  * @param p_segment1 Key flexfield segment.
1116  * @param p_segment2 Key flexfield segment.
1117  * @param p_segment3 Key flexfield segment.
1118  * @param p_segment4 Key flexfield segment.
1119  * @param p_segment5 Key flexfield segment.
1120  * @param p_segment6 Key flexfield segment.
1121  * @param p_segment7 Key flexfield segment.
1122  * @param p_segment8 Key flexfield segment.
1123  * @param p_segment9 Key flexfield segment.
1124  * @param p_segment10 Key flexfield segment.
1125  * @param p_segment11 Key flexfield segment.
1126  * @param p_segment12 Key flexfield segment.
1127  * @param p_segment13 Key flexfield segment.
1128  * @param p_segment14 Key flexfield segment.
1129  * @param p_segment15 Key flexfield segment.
1130  * @param p_segment16 Key flexfield segment.
1131  * @param p_segment17 Key flexfield segment.
1132  * @param p_segment18 Key flexfield segment.
1133  * @param p_segment19 Key flexfield segment.
1134  * @param p_segment20 Key flexfield segment.
1135  * @param p_segment21 Key flexfield segment.
1136  * @param p_segment22 Key flexfield segment.
1137  * @param p_segment23 Key flexfield segment.
1138  * @param p_segment24 Key flexfield segment.
1139  * @param p_segment25 Key flexfield segment.
1140  * @param p_segment26 Key flexfield segment.
1141  * @param p_segment27 Key flexfield segment.
1142  * @param p_segment28 Key flexfield segment.
1143  * @param p_segment29 Key flexfield segment.
1144  * @param p_segment30 Key flexfield segment.
1145  * @param p_concat_segments Concatenated string of segment values
1146  * @param p_request_id When the API is executed from a concurrent program set
1147  * to the concurrent request identifier.
1148  * @param p_program_application_id When the API is executed from a concurrent
1149  * program set to the program's Application.
1150  * @param p_program_id When the API is executed from a concurrent program set
1151  * to the program's identifier.
1152  * @param p_program_update_date When the API is executed from a concurrent
1153  * program set to when the program was ran.
1154  * @param p_object_version_number Pass in the current version number of the
1155  * position to be updated. When the API completes if p_validate is false, will
1156  * be set to the new version number of the updated position. If p_validate is
1157  * true will be set to the same value which was passed in.
1158  * @param p_effective_date Determines when the DateTrack operation comes into
1159  * force.
1160  * @param p_datetrack_mode Indicates which DateTrack mode to use when updating
1161  * the record. You must set to either UPDATE, CORRECTION, UPDATE_OVERRIDE or
1162  * UPDATE_CHANGE_INSERT. Modes available for use with a particular record
1163  * depend on the dates of previous record changes and the effective date of
1164  * this change.
1165  * @rep:displayname Update Position
1166  * @rep:category BUSINESS_ENTITY PER_POSITION
1167  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
1168  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
1169  * @rep:primaryinstance
1170  * @rep:scope public
1171  * @rep:lifecycle active
1172  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
1173 */
1174 --
1175 -- {End Of Comments}
1176 --
1177 procedure update_position
1178   (p_validate                       in  boolean   default false
1179   ,p_position_id                    in  number
1180   ,p_effective_start_date           out nocopy date
1181   ,p_effective_end_date             out nocopy date
1182   ,p_position_definition_id         in out nocopy number
1183   ,p_valid_grades_changed_warning   out nocopy boolean
1184   ,p_name                           in out nocopy varchar2
1185   ,p_language_code                  in  varchar2  default hr_api.userenv_lang
1186   ,p_availability_status_id         in  number    default hr_api.g_number
1187 --  ,p_business_group_id              in  number    default hr_api.g_number
1188   ,p_entry_step_id                  in  number    default hr_api.g_number
1189   ,p_entry_grade_rule_id            in  number    default hr_api.g_number
1190 --  ,p_job_id                         in  number    default hr_api.g_number
1191   ,p_location_id                    in  number    default hr_api.g_number
1192 --  ,p_organization_id                in  number    default hr_api.g_number
1193   ,p_pay_freq_payroll_id            in  number    default hr_api.g_number
1194   ,p_position_transaction_id        in  number    default hr_api.g_number
1195   ,p_prior_position_id              in  number    default hr_api.g_number
1196   ,p_relief_position_id             in  number    default hr_api.g_number
1197   ,p_entry_grade_id                 in  number    default hr_api.g_number
1198   ,p_successor_position_id          in  number    default hr_api.g_number
1199   ,p_supervisor_position_id         in  number    default hr_api.g_number
1200   ,p_amendment_date                 in  date      default hr_api.g_date
1201   ,p_amendment_recommendation       in  varchar2  default hr_api.g_varchar2
1202   ,p_amendment_ref_number           in  varchar2  default hr_api.g_varchar2
1203   ,p_bargaining_unit_cd             in  varchar2  default hr_api.g_varchar2
1204   ,p_comments                       in  long      default hr_api.g_varchar2
1205   ,p_current_job_prop_end_date      in  date      default hr_api.g_date
1206   ,p_current_org_prop_end_date      in  date      default hr_api.g_date
1207   ,p_avail_status_prop_end_date     in  date      default hr_api.g_date
1208   ,p_date_effective                 in  date      default hr_api.g_date
1209   ,p_date_end                       in  date      default hr_api.g_date
1210   ,p_earliest_hire_date             in  date      default hr_api.g_date
1211   ,p_fill_by_date                   in  date      default hr_api.g_date
1212   ,p_frequency                      in  varchar2  default hr_api.g_varchar2
1213   ,p_fte                            in  number    default hr_api.g_number
1214   ,p_max_persons                    in  number    default hr_api.g_number
1215   ,p_overlap_period                 in  number    default hr_api.g_number
1216   ,p_overlap_unit_cd                in  varchar2  default hr_api.g_varchar2
1217   ,p_pay_term_end_day_cd            in  varchar2  default hr_api.g_varchar2
1218   ,p_pay_term_end_month_cd          in  varchar2  default hr_api.g_varchar2
1219   ,p_permanent_temporary_flag       in  varchar2  default hr_api.g_varchar2
1220   ,p_permit_recruitment_flag        in  varchar2  default hr_api.g_varchar2
1221   ,p_position_type                  in  varchar2  default hr_api.g_varchar2
1222   ,p_posting_description            in  varchar2  default hr_api.g_varchar2
1223   ,p_probation_period               in  number    default hr_api.g_number
1224   ,p_probation_period_unit_cd       in  varchar2  default hr_api.g_varchar2
1225   ,p_replacement_required_flag      in  varchar2  default hr_api.g_varchar2
1226   ,p_review_flag                    in  varchar2  default hr_api.g_varchar2
1227   ,p_seasonal_flag                  in  varchar2  default hr_api.g_varchar2
1228   ,p_security_requirements          in  varchar2  default hr_api.g_varchar2
1229   ,p_status                         in  varchar2  default hr_api.g_varchar2
1230   ,p_term_start_day_cd              in  varchar2  default hr_api.g_varchar2
1231   ,p_term_start_month_cd            in  varchar2  default hr_api.g_varchar2
1232   ,p_time_normal_finish             in  varchar2  default hr_api.g_varchar2
1233   ,p_time_normal_start              in  varchar2  default hr_api.g_varchar2
1234   ,p_update_source_cd               in  varchar2  default hr_api.g_varchar2
1235   ,p_working_hours                  in  number    default hr_api.g_number
1236   ,p_works_council_approval_flag    in  varchar2  default hr_api.g_varchar2
1237   ,p_work_period_type_cd            in  varchar2  default hr_api.g_varchar2
1238   ,p_work_term_end_day_cd           in  varchar2  default hr_api.g_varchar2
1239   ,p_work_term_end_month_cd         in  varchar2  default hr_api.g_varchar2
1240   ,p_proposed_fte_for_layoff        in  number    default hr_api.g_number
1241   ,p_proposed_date_for_layoff       in  date      default hr_api.g_date
1242   ,p_pay_basis_id                   in  number    default hr_api.g_number
1243   ,p_supervisor_id                  in  number    default hr_api.g_number
1244   --,p_copied_to_old_table_flag       in  varchar2    default hr_api.g_varchar2
1245   ,p_information1                   in  varchar2  default hr_api.g_varchar2
1246   ,p_information2                   in  varchar2  default hr_api.g_varchar2
1247   ,p_information3                   in  varchar2  default hr_api.g_varchar2
1248   ,p_information4                   in  varchar2  default hr_api.g_varchar2
1249   ,p_information5                   in  varchar2  default hr_api.g_varchar2
1250   ,p_information6                   in  varchar2  default hr_api.g_varchar2
1251   ,p_information7                   in  varchar2  default hr_api.g_varchar2
1252   ,p_information8                   in  varchar2  default hr_api.g_varchar2
1253   ,p_information9                   in  varchar2  default hr_api.g_varchar2
1254   ,p_information10                  in  varchar2  default hr_api.g_varchar2
1255   ,p_information11                  in  varchar2  default hr_api.g_varchar2
1256   ,p_information12                  in  varchar2  default hr_api.g_varchar2
1257   ,p_information13                  in  varchar2  default hr_api.g_varchar2
1258   ,p_information14                  in  varchar2  default hr_api.g_varchar2
1259   ,p_information15                  in  varchar2  default hr_api.g_varchar2
1260   ,p_information16                  in  varchar2  default hr_api.g_varchar2
1261   ,p_information17                  in  varchar2  default hr_api.g_varchar2
1262   ,p_information18                  in  varchar2  default hr_api.g_varchar2
1263   ,p_information19                  in  varchar2  default hr_api.g_varchar2
1264   ,p_information20                  in  varchar2  default hr_api.g_varchar2
1265   ,p_information21                  in  varchar2  default hr_api.g_varchar2
1266   ,p_information22                  in  varchar2  default hr_api.g_varchar2
1267   ,p_information23                  in  varchar2  default hr_api.g_varchar2
1268   ,p_information24                  in  varchar2  default hr_api.g_varchar2
1269   ,p_information25                  in  varchar2  default hr_api.g_varchar2
1270   ,p_information26                  in  varchar2  default hr_api.g_varchar2
1271   ,p_information27                  in  varchar2  default hr_api.g_varchar2
1272   ,p_information28                  in  varchar2  default hr_api.g_varchar2
1273   ,p_information29                  in  varchar2  default hr_api.g_varchar2
1274   ,p_information30                  in  varchar2  default hr_api.g_varchar2
1275   ,p_information_category           in  varchar2  default hr_api.g_varchar2
1276   ,p_attribute1                     in  varchar2  default hr_api.g_varchar2
1277   ,p_attribute2                     in  varchar2  default hr_api.g_varchar2
1278   ,p_attribute3                     in  varchar2  default hr_api.g_varchar2
1279   ,p_attribute4                     in  varchar2  default hr_api.g_varchar2
1280   ,p_attribute5                     in  varchar2  default hr_api.g_varchar2
1281   ,p_attribute6                     in  varchar2  default hr_api.g_varchar2
1282   ,p_attribute7                     in  varchar2  default hr_api.g_varchar2
1283   ,p_attribute8                     in  varchar2  default hr_api.g_varchar2
1284   ,p_attribute9                     in  varchar2  default hr_api.g_varchar2
1285   ,p_attribute10                    in  varchar2  default hr_api.g_varchar2
1286   ,p_attribute11                    in  varchar2  default hr_api.g_varchar2
1287   ,p_attribute12                    in  varchar2  default hr_api.g_varchar2
1288   ,p_attribute13                    in  varchar2  default hr_api.g_varchar2
1289   ,p_attribute14                    in  varchar2  default hr_api.g_varchar2
1290   ,p_attribute15                    in  varchar2  default hr_api.g_varchar2
1291   ,p_attribute16                    in  varchar2  default hr_api.g_varchar2
1292   ,p_attribute17                    in  varchar2  default hr_api.g_varchar2
1293   ,p_attribute18                    in  varchar2  default hr_api.g_varchar2
1294   ,p_attribute19                    in  varchar2  default hr_api.g_varchar2
1295   ,p_attribute20                    in  varchar2  default hr_api.g_varchar2
1296   ,p_attribute21                    in  varchar2  default hr_api.g_varchar2
1297   ,p_attribute22                    in  varchar2  default hr_api.g_varchar2
1298   ,p_attribute23                    in  varchar2  default hr_api.g_varchar2
1299   ,p_attribute24                    in  varchar2  default hr_api.g_varchar2
1300   ,p_attribute25                    in  varchar2  default hr_api.g_varchar2
1301   ,p_attribute26                    in  varchar2  default hr_api.g_varchar2
1302   ,p_attribute27                    in  varchar2  default hr_api.g_varchar2
1303   ,p_attribute28                    in  varchar2  default hr_api.g_varchar2
1304   ,p_attribute29                    in  varchar2  default hr_api.g_varchar2
1305   ,p_attribute30                    in  varchar2  default hr_api.g_varchar2
1306   ,p_attribute_category             in  varchar2  default hr_api.g_varchar2
1307   ,p_segment1                      in     varchar2 default hr_api.g_varchar2
1308   ,p_segment2                      in     varchar2 default hr_api.g_varchar2
1309   ,p_segment3                      in     varchar2 default hr_api.g_varchar2
1310   ,p_segment4                      in     varchar2 default hr_api.g_varchar2
1311   ,p_segment5                      in     varchar2 default hr_api.g_varchar2
1312   ,p_segment6                      in     varchar2 default hr_api.g_varchar2
1313   ,p_segment7                      in     varchar2 default hr_api.g_varchar2
1314   ,p_segment8                      in     varchar2 default hr_api.g_varchar2
1315   ,p_segment9                      in     varchar2 default hr_api.g_varchar2
1316   ,p_segment10                     in     varchar2 default hr_api.g_varchar2
1317   ,p_segment11                     in     varchar2 default hr_api.g_varchar2
1318   ,p_segment12                     in     varchar2 default hr_api.g_varchar2
1319   ,p_segment13                     in     varchar2 default hr_api.g_varchar2
1320   ,p_segment14                     in     varchar2 default hr_api.g_varchar2
1321   ,p_segment15                     in     varchar2 default hr_api.g_varchar2
1322   ,p_segment16                     in     varchar2 default hr_api.g_varchar2
1323   ,p_segment17                     in     varchar2 default hr_api.g_varchar2
1324   ,p_segment18                     in     varchar2 default hr_api.g_varchar2
1325   ,p_segment19                     in     varchar2 default hr_api.g_varchar2
1326   ,p_segment20                     in     varchar2 default hr_api.g_varchar2
1327   ,p_segment21                     in     varchar2 default hr_api.g_varchar2
1328   ,p_segment22                     in     varchar2 default hr_api.g_varchar2
1329   ,p_segment23                     in     varchar2 default hr_api.g_varchar2
1330   ,p_segment24                     in     varchar2 default hr_api.g_varchar2
1331   ,p_segment25                     in     varchar2 default hr_api.g_varchar2
1332   ,p_segment26                     in     varchar2 default hr_api.g_varchar2
1333   ,p_segment27                     in     varchar2 default hr_api.g_varchar2
1334   ,p_segment28                     in     varchar2 default hr_api.g_varchar2
1335   ,p_segment29                     in     varchar2 default hr_api.g_varchar2
1336   ,p_segment30                     in     varchar2 default hr_api.g_varchar2
1337   ,p_concat_segments               in     varchar2 default hr_api.g_varchar2
1338   ,p_request_id                     in  number    default hr_api.g_number
1339   ,p_program_application_id         in  number    default hr_api.g_number
1340   ,p_program_id                     in  number    default hr_api.g_number
1341   ,p_program_update_date            in  date      default hr_api.g_date
1342   ,p_object_version_number          in out nocopy number
1343   ,p_effective_date                 in  date
1344   ,p_datetrack_mode                 in  varchar2
1345   );
1346 --
1347 -- ----------------------------------------------------------------------------
1348 -- |-----------------------------< delete_position >--------------------------|
1349 -- ----------------------------------------------------------------------------
1350 --
1351 -- {Start Of Comments}
1352 /*#
1353  * This API deletes a position and should be used if you have HR fully
1354  * installed.
1355  *
1356  * This overload version of the delete API provides DateTrack features.
1357  *
1358  * <p><b>Licensing</b><br>
1359  * This API is licensed for use with Human Resources.
1360  *
1361  * <p><b>Prerequisites</b><br>
1362  * The position to be deleted must already exist. The position to be deleted
1363  * must not be used in any assignment.
1364  *
1365  * <p><b>Post Success</b><br>
1366  * The position is deleted successfully from the database.
1367  *
1368  * <p><b>Post Failure</b><br>
1369  * The position is not deleted and an error is raised.
1370  * @param p_validate If true, then validation alone will be performed and the
1371  * database will remain unchanged. If false and all validation checks pass,
1372  * then the database will be modified.
1373  * @param p_position_id Identifies the position to be deleted.
1374  * @param p_effective_start_date If p_validate is false, then set to the
1375  * effective start date for the deleted position row which now exists as of the
1376  * effective date. If p_validate is true or all row instances have been deleted
1377  * then set to null.
1378  * @param p_effective_end_date If p_validate is false, then set to the
1379  * effective end date for the deleted position row which now exists as of the
1380  * effective date. If p_validate is true or all row instances have been deleted
1381  * then set to null.
1382  * @param p_object_version_number Current version number of the position to be
1383  * deleted.
1384  * @param p_effective_date Determines when the DateTrack operation comes into
1385  * force.
1386  * @param p_datetrack_mode Indicates which DateTrack mode to use when deleting
1387  * the record. You must set to either ZAP, DELETE, FUTURE_CHANGE or
1388  * DELETE_NEXT_CHANGE. Modes available for use with a particular record depend
1389  * on the dates of previous record changes and the effective date of this
1390  * change.
1391  * @param p_security_profile_id Security Profile of the current responsibility.
1392  * @rep:displayname Delete Position
1393  * @rep:category BUSINESS_ENTITY PER_POSITION
1394  * @rep:category MISC_EXTENSIONS HR_DATAPUMP
1395  * @rep:category MISC_EXTENSIONS HR_USER_HOOKS
1396  * @rep:primaryinstance
1397  * @rep:scope public
1398  * @rep:lifecycle active
1399  * @rep:ihelp PER/@scalapi APIs in Oracle HRMS
1400 */
1401 --
1402 -- {End Of Comments}
1403 --
1404 procedure delete_position
1405   (
1406    p_validate                       in boolean        default false
1407   ,p_position_id                    in  number
1408   ,p_effective_start_date           out nocopy date
1409   ,p_effective_end_date             out nocopy date
1410   ,p_object_version_number          in out nocopy number
1411   ,p_effective_date                 in date
1412   ,p_datetrack_mode                 in varchar2
1413   ,p_security_profile_id	    in number	  default hr_security.get_security_profile
1414   );
1415 --
1416 -- ----------------------------------------------------------------------------
1417 -- |----------------------------------< lck >---------------------------------|
1418 -- ----------------------------------------------------------------------------
1419 -- {Start Of Comments}
1420 --
1421 -- Description:
1422 --
1423 -- Prerequisites:
1424 --
1425 --
1426 -- In Parameters:
1427 --   Name                           Reqd Type     Description
1428 --   p_position_id                 Yes  number   PK of record
1429 --   p_object_version_number        Yes  number   OVN of record
1430 --   p_effective_date               Yes  date     Session Date.
1431 --   p_datetrack_mode               Yes  varchar2 Datetrack mode.
1432 --
1433 -- Post Success:
1434 --
1435 --   Name                           Type     Description
1436 --   p_validation_start_date        Yes      Derived Effective Start Date.
1437 --   p_validation_end_date          Yes      Derived Effective End Date.
1438 --
1439 -- Post Failure:
1440 --
1441 -- Access Status:
1442 --   Public.
1443 --
1444 -- {End Of Comments}
1445 --
1446 procedure lck
1447   (
1448     p_position_id                 in number
1449    ,p_object_version_number        in number
1450    ,p_effective_date              in date
1451    ,p_datetrack_mode              in varchar2
1452    ,p_validation_start_date        out nocopy date
1453    ,p_validation_end_date          out nocopy date
1454    ,p_language_code               in  varchar2  default hr_api.userenv_lang
1455   );
1456 --
1457 -- ----------------------------------------------------------------------------
1458 -- |------------------------< regenerate_position_name >----------------------|
1459 -- ----------------------------------------------------------------------------
1460 -- {Start Of Comments}
1461 --
1462 -- Description:
1463 --  Regenerate_position_name to rebuild position name for only one position
1464 --  from current flexfield values
1465 --
1466 --
1467 -- Prerequisites:
1468 --  If this process is called at the server-side ensure that
1469 --  fnd_profiles are initialized when position flexfield valuesets
1470 --  uses profile values
1471 --
1472 -- In Parameters:
1473 --   Name                           Reqd Type     Description
1474 --   p_position_id                  Yes  Number   Position_id of the position
1475 --
1476 --
1477 -- Post Success:
1478 --   regenerates position name
1479 --
1480 -- Post Failure:
1481 --   Throws error message
1482 --
1483 --
1484 -- Access Status:
1485 --   Internal Development Use Only.
1486 --
1487 -- {End Of Comments}
1488 --
1489 procedure regenerate_position_name(p_position_id number);
1490 --
1491 -- ----------------------------------------------------------------------------
1492 -- |------------------------< regenerate_position_names >---------------------|
1493 -- ----------------------------------------------------------------------------
1494 -- {Start Of Comments}
1495 --
1496 -- Description:
1497 --  Regenerate Position Names process is used to rebuild
1498 --  position names using current Position flexfield values.
1499 --  This procedure is called by concurrent program
1500 --
1501 --  Pass p_organization_id if the position names need to be regenerated
1502 --  for all the positions under that organization.
1503 --
1504 --  Pass p_business_group_id if the position name needs to be regenerated
1505 --  for all the positions under that business group
1506 --
1507 --  Pass null to both p_business_group_id and  p_organization_id
1508 --  if the position name needs to be regenerated
1509 --  for all the positions in all the business groups
1510 --
1511 -- Prerequisites:
1512 --  None
1513 --
1514 -- In Parameters:
1515 --   Name                           Reqd Type     Description
1516 --   p_business_group_id            Yes  Number   business_group_id or null
1517 --   p_organization_id              Yes  Number   organization_id or null
1518 --
1519 --
1520 -- Post Success:
1521 --   regenerates position names
1522 --
1523 --   Name                           Type     Description
1524 --   retcode                        Number   returns completion status
1525 --                                           0 for success,
1526 
1527 --
1528 -- Post Failure:
1529 --
1530 --   Name                           Type     Description
1531 --   errbuf                         Varchar2 return any error messages
1532 --   retcode                        Number   to return any completion status
1533 --                                           0 for success,
1534 --                                           1 for success with warnings,
1535 --                                           and 2 for error
1536 --
1537 -- Access Status:
1538 --   Internal Development Use Only.
1539 --
1540 -- {End Of Comments}
1541 --
1542 --
1543 -- ----------------------------------------------------------------------------
1544 -- |------------------------< regenerate_position_names >---------------------|
1545 -- ----------------------------------------------------------------------------
1546 --  Regenerate Position Names process is used to rebuild
1547 --  position names using current Position flexfield values
1548 --
1549 procedure regenerate_position_names(
1550                             errbuf   out nocopy varchar2
1551                           , retcode   out nocopy number
1552                           , p_business_group_id number,
1553                             p_organization_id number);
1554 --
1555 --
1556 -- end of date tracked position apis
1557 --
1558 --
1559 end hr_position_api;