DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PSV_SHD

Source


1 Package Body per_psv_shd as
2 /* $Header: pepsvrhi.pkb 115.7 2002/12/05 09:55:22 eumenyio noship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33) := '  per_psv_shd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------< return_api_dml_status >-------------------------|
12 -- ----------------------------------------------------------------------------
13 Function return_api_dml_status Return Boolean Is
14 --
15 Begin
16   --
17   Return (nvl(g_api_dml, false));
18   --
19 End return_api_dml_status;
20 --
21 -- ----------------------------------------------------------------------------
22 -- |---------------------------< constraint_error >---------------------------|
23 -- ----------------------------------------------------------------------------
24 Procedure constraint_error
25   (p_constraint_name in all_constraints.constraint_name%TYPE
26   ) Is
27 --
28   l_proc        varchar2(72) := g_package||'constraint_error';
29 --
30 Begin
31   --
32   If (p_constraint_name = 'PER_POS_STRUCTURE_VERSIONS_FK1') Then
33     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
34     fnd_message.set_token('PROCEDURE', l_proc);
35     fnd_message.set_token('STEP','5');
36     fnd_message.raise_error;
37   ElsIf (p_constraint_name = 'PER_POS_STRUCTURE_VERSIONS_FK2') Then
38     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
39     fnd_message.set_token('PROCEDURE', l_proc);
40     fnd_message.set_token('STEP','10');
41     fnd_message.raise_error;
42   ElsIf (p_constraint_name = 'PER_POS_STRUCTURE_VERSIONS_PK') Then
43     fnd_message.set_name('PAY', 'HR_6153_ALL_PROCEDURE_FAIL');
44     fnd_message.set_token('PROCEDURE', l_proc);
45     fnd_message.set_token('STEP','15');
46     fnd_message.raise_error;
47   Else
48     fnd_message.set_name('PAY', 'HR_7877_API_INVALID_CONSTRAINT');
49     fnd_message.set_token('PROCEDURE', l_proc);
50     fnd_message.set_token('CONSTRAINT_NAME', p_constraint_name);
51     fnd_message.raise_error;
52   End If;
53   --
54 End constraint_error;
55 --
56 -- ----------------------------------------------------------------------------
57 -- |-----------------------------< api_updating >-----------------------------|
58 -- ----------------------------------------------------------------------------
59 Function api_updating
60   (p_pos_structure_version_id             in     number
61   ,p_object_version_number                in     number
62   )
63   Return Boolean Is
64   --
65   --
66   -- Cursor selects the 'current' row from the HR Schema
67   --
68   Cursor C_Sel1 is
69     select
70        pos_structure_version_id
71       ,business_group_id
72       ,position_structure_id
73       ,date_from
74       ,version_number
75       ,copy_structure_version_id
76       ,date_to
77       ,request_id
78       ,program_application_id
79       ,program_id
80       ,program_update_date
81       ,object_version_number
82     from        per_pos_structure_versions
83     where       pos_structure_version_id = p_pos_structure_version_id;
84   --
85   l_fct_ret     boolean;
86   --
87 Begin
88   --
89   If (p_pos_structure_version_id is null and
90       p_object_version_number is null
91      ) Then
92     --
93     -- One of the primary key arguments is null therefore we must
94     -- set the returning function value to false
95     --
96     l_fct_ret := false;
97   Else
98     If (p_pos_structure_version_id
99         = per_psv_shd.g_old_rec.pos_structure_version_id and
100         p_object_version_number
101         = per_psv_shd.g_old_rec.object_version_number
102        ) Then
103       --
104       -- The g_old_rec is current therefore we must
105       -- set the returning function to true
106       --
107       l_fct_ret := true;
108     Else
109       --
110       -- Select the current row into g_old_rec
111       --
112       Open C_Sel1;
113       Fetch C_Sel1 Into per_psv_shd.g_old_rec;
114       If C_Sel1%notfound Then
115         Close C_Sel1;
116         --
117         -- The primary key is invalid therefore we must error
118         --
119         fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
120         fnd_message.raise_error;
121       End If;
122       Close C_Sel1;
123       If (p_object_version_number
124           <> per_psv_shd.g_old_rec.object_version_number) Then
125         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
126         fnd_message.raise_error;
127       End If;
128       l_fct_ret := true;
129     End If;
130   End If;
131   Return (l_fct_ret);
132 --
133 End api_updating;
134 --
135 -- ----------------------------------------------------------------------------
136 -- |---------------------------------< lck >----------------------------------|
137 -- ----------------------------------------------------------------------------
138 Procedure lck
139   (p_pos_structure_version_id             in     number
140   ,p_object_version_number                in     number
141   ) is
142 --
143 -- Cursor selects the 'current' row from the HR Schema
144 --
145   Cursor C_Sel1 is
146     select
147        pos_structure_version_id
148       ,business_group_id
149       ,position_structure_id
150       ,date_from
151       ,version_number
152       ,copy_structure_version_id
153       ,date_to
154       ,request_id
155       ,program_application_id
156       ,program_id
157       ,program_update_date
158       ,object_version_number
159     from        per_pos_structure_versions
160     where       pos_structure_version_id = p_pos_structure_version_id
161     for update nowait;
162 --
163   l_proc        varchar2(72) := g_package||'lck';
164 --
165 Begin
166   hr_utility.set_location('Entering:'||l_proc, 5);
167   --
168   hr_api.mandatory_arg_error
169     (p_api_name           => l_proc
170     ,p_argument           => 'POS_STRUCTURE_VERSION_ID'
171     ,p_argument_value     => p_pos_structure_version_id
172     );
173   hr_utility.set_location(l_proc,6);
174   hr_api.mandatory_arg_error
175     (p_api_name           => l_proc
176     ,p_argument           => 'OBJECT_VERSION_NUMBER'
177     ,p_argument_value     => p_object_version_number
178     );
179   --
180   Open  C_Sel1;
181   Fetch C_Sel1 Into per_psv_shd.g_old_rec;
182   If C_Sel1%notfound then
183     Close C_Sel1;
184     --
185     -- The primary key is invalid therefore we must error
186     --
187     fnd_message.set_name('PAY', 'HR_7220_INVALID_PRIMARY_KEY');
188     fnd_message.raise_error;
189   End If;
190   Close C_Sel1;
191   If (p_object_version_number
192       <> per_psv_shd.g_old_rec.object_version_number) Then
193         fnd_message.set_name('PAY', 'HR_7155_OBJECT_INVALID');
194         fnd_message.raise_error;
195   End If;
196   --
197   hr_utility.set_location(' Leaving:'||l_proc, 10);
198   --
199   -- We need to trap the ORA LOCK exception
200   --
201 Exception
202   When HR_Api.Object_Locked then
203     --
204     -- The object is locked therefore we need to supply a meaningful
205     -- error message.
206     --
207     fnd_message.set_name('PAY', 'HR_7165_OBJECT_LOCKED');
208     fnd_message.set_token('TABLE_NAME', 'per_pos_structure_versions');
209     fnd_message.raise_error;
210 End lck;
211 --
212 -- ----------------------------------------------------------------------------
213 -- |-----------------------------< convert_args >-----------------------------|
214 -- ----------------------------------------------------------------------------
215 Function convert_args
216   (p_pos_structure_version_id       in number
217   ,p_business_group_id              in number
218   ,p_position_structure_id          in number
219   ,p_date_from                      in date
220   ,p_version_number                 in number
221   ,p_copy_structure_version_id      in number
222   ,p_date_to                        in date
223   ,p_request_id                     in number
224   ,p_program_application_id         in number
225   ,p_program_id                     in number
226   ,p_program_update_date            in date
227   ,p_object_version_number          in number
228   )
229   Return g_rec_type is
230 --
231   l_rec   g_rec_type;
232 --
233 Begin
234   --
235   -- Convert arguments into local l_rec structure.
236   --
237   l_rec.pos_structure_version_id         := p_pos_structure_version_id;
238   l_rec.business_group_id                := p_business_group_id;
239   l_rec.position_structure_id            := p_position_structure_id;
240   l_rec.date_from                        := p_date_from;
241   l_rec.version_number                   := p_version_number;
242   l_rec.copy_structure_version_id        := p_copy_structure_version_id;
243   l_rec.date_to                          := p_date_to;
244   l_rec.request_id                       := p_request_id;
245   l_rec.program_application_id           := p_program_application_id;
246   l_rec.program_id                       := p_program_id;
247   l_rec.program_update_date              := p_program_update_date;
248   l_rec.object_version_number            := p_object_version_number;
249   --
250   -- Return the plsql record structure.
251   --
252   Return(l_rec);
253 --
254 End convert_args;
255 --
256 end per_psv_shd;