DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ASP_SHD

Source


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