1 PACKAGE AS_ACCESS_PVT as
2 /* $Header: asxvacss.pls 120.1 2006/03/25 04:25:54 savadhan noship $ */
3
4 -- Start of Comments
5 --
6 -- NAME
7 -- AS_ACCESS_PVT
8 --
9 -- PURPOSE
10 -- This package is a private API for manipulating access related info into
11 -- OSM. It contains specification for pl/sql records and tables and the
12 -- Private API's for access and sales team manipulation
13 --
14 -- Procedures:
15 -- Create_SalesTeam
16 -- Delete SalesTeam
17 -- Update_SalesTeam
18 -- Validate_SalesTeam
19 -- Has_ViewCustomerAccess
20 -- Has_UpdateCustomerAccess
21 -- Has_UpdateLeadAccess
22 -- Has_UpdateOpportunityAccess
23 -- Has_viewLeadAccess
24 -- Has_viewOpportunityAccess
25
26 -- NOTES
27 -- This package is for private use only
28 --
29 --
30 --
31 -- HISTORY
32 -- 06/19/98 JKORNBER Created
33 -- 07/07/98 AWU Updated
34 --
35 -- End of Comments
36
37
38 -- ***********************
39 -- Composite Types
40 -- ***********************
41
42 -- Start of Comments
43 --
44 -- Sales team (access Record): sales_team_rec_type
45 --
46 -- Parameters:
47 -- access_id
48 -- freeze_flag
49 -- reassign_flag
50 -- team_leader_flag
51 -- customer_id
52 -- address_id
53 -- salesforce_id
54 -- person_id
55 -- partner_customer_id
56 -- partner_address_id
57 -- created_person_id
58 -- lead_id
59 -- freeze_date
60 -- reassign_reason
61 -- downloadable_flag obsolete
62 -- attribute_category
63 -- attribute1 -15
64 -- salesforce_relationship_code
65 -- <Added by ACNG>
66 -- salesforce_role_code
67 -- sales_lead_id
68 -- sales_group_id
69 -- partner_cont_party_id
70 -- <End>
71 --
72 -- Required:
73 -- ACCESS_ID
74 -- FREEZE_FLAG
75 -- REASSIGN_FLAG
76 -- TEAM_LEADER_FLAG
77 -- CUSTOMER_ID
78 -- ADDRESS_ID
79 --
80 --
81 -- Defaults:
82 --
83 -- End of Comments
84
85 TYPE sales_team_rec_type IS RECORD
86 (
87 access_id NUMBER := NULL
88 ,last_update_date DATE := FND_API.G_MISS_DATE
89 ,last_updated_by NUMBER := FND_API.G_MISS_NUM
90 ,creation_date DATE := FND_API.G_MISS_DATE
91 ,created_by NUMBER := FND_API.G_MISS_NUM
92 ,last_update_login NUMBER := FND_API.G_MISS_NUM
93 ,freeze_flag VARCHAR2(1) := FND_API.G_MISS_CHAR
94 ,reassign_flag VARCHAR2(1) := FND_API.G_MISS_CHAR
95 ,team_leader_flag VARCHAR2(1) := FND_API.G_MISS_CHAR
96 ,customer_id NUMBER := NULL
97 ,address_id NUMBER := NULL
98 ,salesforce_id NUMBER := NULL
99 ,person_id NUMBER := NULL
100 ,partner_customer_id NUMBER := NULL
101 ,partner_address_id NUMBER := NULL
102 ,created_person_id NUMBER := NULL
103 ,lead_id NUMBER := NULL
104 ,freeze_date DATE := FND_API.G_MISS_DATE
105 ,reassign_reason VARCHAR2(240) := FND_API.G_MISS_CHAR
106 ,reassign_request_date DATE := FND_API.G_MISS_DATE
107 ,reassign_requested_person_id NUMBER := FND_API.G_MISS_NUM
108 ,downloadable_flag VARCHAR2(1) := FND_API.G_MISS_CHAR
109 ,attribute_category VARCHAR2(30) := FND_API.G_MISS_CHAR
110 ,attribute1 VARCHAR2(150) := FND_API.G_MISS_CHAR
111 ,attribute2 VARCHAR2(150) := FND_API.G_MISS_CHAR
112 ,attribute3 VARCHAR2(150) := FND_API.G_MISS_CHAR
113 ,attribute4 VARCHAR2(150) := FND_API.G_MISS_CHAR
114 ,attribute5 VARCHAR2(150) := FND_API.G_MISS_CHAR
115 ,attribute6 VARCHAR2(150) := FND_API.G_MISS_CHAR
116 ,attribute7 VARCHAR2(150) := FND_API.G_MISS_CHAR
117 ,attribute8 VARCHAR2(150) := FND_API.G_MISS_CHAR
118 ,attribute9 VARCHAR2(150) := FND_API.G_MISS_CHAR
119 ,attribute10 VARCHAR2(150) := FND_API.G_MISS_CHAR
120 ,attribute11 VARCHAR2(150) := FND_API.G_MISS_CHAR
121 ,attribute12 VARCHAR2(150) := FND_API.G_MISS_CHAR
122 ,attribute13 VARCHAR2(150) := FND_API.G_MISS_CHAR
123 ,attribute14 VARCHAR2(150) := FND_API.G_MISS_CHAR
124 ,attribute15 VARCHAR2(150) := FND_API.G_MISS_CHAR
125 ,salesforce_role_code VARCHAR2(30) := FND_API.G_MISS_CHAR
126 ,salesforce_relationship_code VARCHAR2(30) := FND_API.G_MISS_CHAR
127 ,sales_lead_id NUMBER := FND_API.G_MISS_NUM
128 ,sales_group_id NUMBER := FND_API.G_MISS_NUM
129 ,partner_cont_party_id NUMBER := FND_API.G_MISS_NUM
130 ,owner_flag varchar2(1) := FND_API.G_MISS_CHAR
131 ,created_by_tap_flag varchar2(1) := FND_API.G_MISS_CHAR
132 ,prm_keep_flag varchar2(1) := FND_API.G_MISS_CHAR
133 ,contributor_flag varchar2(1) := FND_API.G_MISS_CHAR -- Added for ASNB
134 );
135
136 G_MISS_SALES_TEAM_REC sales_team_rec_type;
137
138
139 -- Start of Comments
140 --
141 -- Sales Team Table: sales_team_tbl_type
142 --
143 -- End of Comments
144
145 TYPE sales_team_tbl_type IS TABLE OF sales_team_rec_type
146 INDEX BY BINARY_INTEGER;
147
148 G_MISS_SALES_TEAM_TBL sales_team_tbl_type;
149
150 -- Start of Comments
151 --
152 -- API name : Create_SalesTeam
153 -- Type : Private
154 -- Function : Insert sales team member records into the
155 -- sales team (access table)
156 --
157 -- Pre-reqs : Existing Customer and Account, or Opportunity
158 --
159 -- Paramaeters :
160 -- IN :
161 -- p_api_version_number IN NUMBER,
162 -- p_init_msg_list IN VARCHAR2
163 -- p_commit IN VARCHAR2
164 -- p_validation_level IN NUMBER
165 -- OUT :
166 -- x_return_status OUT VARCHAR2(1)
167 -- x_msg_count OUT NUMBER
168 -- x_msg_data OUT VARCHAR2(2000)
169 -- x_access_id OUT NUMBER
170 --
171 -- Version : Current version 2.0
172 -- Initial Version
173 -- Initial version 1.0
174 --
175 -- Notes: API for creating either an account or opportunity
176 -- sales team
177 --
178 --
179 -- End of Comments
180
181 PROCEDURE Create_SalesTeam
182 ( p_api_version_number IN NUMBER,
183 p_init_msg_list IN VARCHAR2
184 := FND_API.G_FALSE,
185 p_commit IN VARCHAR2
186 := FND_API.G_FALSE,
187 p_validation_level IN NUMBER
188 := FND_API.G_VALID_LEVEL_FULL,
189 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
190 p_check_access_flag IN VARCHAR2,
191 p_admin_flag IN VARCHAR2,
192 p_admin_group_id IN NUMBER,
193 p_identity_salesforce_id IN NUMBER,
194 p_sales_team_rec IN SALES_TEAM_REC_TYPE,
195 x_return_status OUT NOCOPY VARCHAR2,
196 x_msg_count OUT NOCOPY NUMBER,
197 x_msg_data OUT NOCOPY VARCHAR2,
198 x_access_id OUT NOCOPY NUMBER
199 );
200
201 -- Start of Comments
202 --
203 -- API name : Delete_SalesTeam
204 -- Type : Private
205 -- Function : Delete sales team member records from the
206 -- sales team (access table)
207 --
208 -- Pre-reqs : Existing sales team record
209 --
210 -- Paramaeters :
211 -- IN :
212 -- p_api_version_number IN NUMBER,
213 -- p_init_msg_list IN VARCHAR2
214 -- p_commit IN VARCHAR2
215 -- p_validation_level IN NUMBER
216 -- OUT :
217 -- x_return_status OUT VARCHAR2(1)
218 -- x_msg_count OUT NUMBER
219 -- x_msg_data OUT VARCHAR2(2000)
220 --
221 --
222 -- Version : Current version 2.0
223 -- Initial Version
224 -- Initial version 1.0
225 --
226 -- Notes: API for delete either an account or opportunity
227 -- sales team
228 --
229 --
230 -- End of Comments
231
232 PROCEDURE Delete_SalesTeam
233 ( p_api_version_number IN NUMBER,
234 p_init_msg_list IN VARCHAR2
235 := FND_API.G_FALSE,
236 p_commit IN VARCHAR2
237 := FND_API.G_FALSE,
238 p_validation_level IN NUMBER
239 := FND_API.G_VALID_LEVEL_FULL,
240 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
241 p_check_access_flag IN VARCHAR2,
242 p_admin_flag IN VARCHAR2,
243 p_admin_group_id IN NUMBER,
244 p_identity_salesforce_id IN NUMBER,
245 p_sales_team_rec IN SALES_TEAM_REC_TYPE,
246 x_return_status OUT NOCOPY VARCHAR2,
247 x_msg_count OUT NOCOPY NUMBER,
248 x_msg_data OUT NOCOPY VARCHAR2
249 );
250
251 -- Start of Comments
252 --
253 -- API name : Update_SalesTeam
254 -- Type : Private
255 -- Function : Update sales team member records into the
256 -- sales team (access table)
257 --
258 -- Pre-reqs : Existing sales team record
259 --
260 -- Paramaeters :
261 -- IN :
262 -- p_api_version_number IN NUMBER,
263 -- p_init_msg_list IN VARCHAR2
264 -- p_commit IN VARCHAR2
265 -- p_validation_level IN NUMBER
266 -- OUT :
267 -- x_return_status OUT NOCOPY VARCHAR2(1)
268 -- x_msg_count OUT NOCOPY NUMBER
269 -- x_msg_data OUT NOCOPY VARCHAR2(2000)
270 -- x_access_id OUT NOCOPY NUMBER
271 --
272 -- Version : Current version 2.0
273 -- Initial Version
274 -- Initial version 1.0
275 --
276 -- Notes: API for updating either an account or opportunity
277 -- sales team
278 --
279 --
280 -- End of Comments
281
282 PROCEDURE Update_SalesTeam
283 ( p_api_version_number IN NUMBER,
284 p_init_msg_list IN VARCHAR2
285 := FND_API.G_FALSE,
286 p_commit IN VARCHAR2
287 := FND_API.G_FALSE,
288 p_validation_level IN NUMBER
289 := FND_API.G_VALID_LEVEL_FULL,
290 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
291 p_check_access_flag IN VARCHAR2,
292 p_admin_flag IN VARCHAR2,
293 p_admin_group_id IN NUMBER,
294 p_identity_salesforce_id IN NUMBER,
295 p_sales_team_rec IN SALES_TEAM_REC_TYPE,
296 x_return_status OUT NOCOPY VARCHAR2,
297 x_msg_count OUT NOCOPY NUMBER,
298 x_msg_data OUT NOCOPY VARCHAR2,
299 x_access_id OUT NOCOPY NUMBER
300 );
301
302
303 -- Start of Comments
304 --
305 -- API name : Validate_SalesTeamItems
306 -- Type : Private
307 -- Function : Validate sales team member records
308 --
309 -- Pre-reqs : None
310 --
311 -- Paramaeters :
312 -- IN :
313 -- p_api_version_number IN NUMBER,
314 -- p_init_msg_list IN VARCHAR2
315 -- p_validation_level IN NUMBER
316 -- OUT :
317 -- x_return_status OUT NOCOPY VARCHAR2(1)
318 -- x_msg_count OUT NOCOPY NUMBER
319 -- x_msg_data OUT NOCOPY VARCHAR2(2000)
320 --
321 -- Version : Current version 2.0
322 -- Initial Version
323 -- Initial version 1.0
324 --
325 -- Notes: API for validating either an account or opportunity
326 -- sales team member record
327 --
328 --
329 -- End of Comments
330
331 PROCEDURE Validate_SalesTeamItems
332 ( p_api_version_number IN NUMBER,
333 p_init_msg_list IN VARCHAR2
334 := FND_API.G_FALSE,
335 p_validation_level IN NUMBER
336 := FND_API.G_VALID_LEVEL_FULL,
337 p_sales_team_rec IN SALES_TEAM_REC_TYPE,
338 x_return_status OUT NOCOPY VARCHAR2,
339 x_msg_count OUT NOCOPY NUMBER,
340 x_msg_data OUT NOCOPY VARCHAR2
341 );
342
343 -- API name : has_viewCustomerAccess
344 -- Type : Public
345 -- Function : This API is used for checking if login user has view access for
346 -- the pass in customer id. If the user has view access for the customer,
347 -- he/she can create contacts, update contacts, create sales leads and create
348 -- opportunities for this customer.
349 -- For PRM support, it also checks if login partner contact has view access for
350 -- passing in customer id. PRM need to make sure to pass
351 -- in p_partner_cont_party_id for partner contact access
352 -- and pass in partner contact resource id to p_identity_salesforce_id.
353 -- For LAM and CM login, make sure not to pass in this
354 -- value. For has view access, this API will return
355 -- x_view_access_flag = 'Y', otherwise return 'N'.
356
357 procedure has_viewCustomerAccess
358 ( p_api_version_number IN NUMBER
359 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
360 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
361 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
362 ,p_admin_flag IN VARCHAR2
363 ,p_admin_group_id IN NUMBER
364 ,p_person_id IN NUMBER
365 ,p_customer_id IN NUMBER
366 ,p_check_access_flag IN VARCHAR2
367 ,p_identity_salesforce_id IN NUMBER
368 ,p_partner_cont_party_id IN NUMBER
369 ,x_return_status OUT NOCOPY VARCHAR2
370 ,x_msg_count OUT NOCOPY NUMBER
371 ,x_msg_data OUT NOCOPY VARCHAR2
372 ,x_view_access_flag OUT NOCOPY VARCHAR2
373 );
374
375 -- API name : has_updateCustomerAccess
376 -- Type : Public
377 -- Function : This API is used for checking if login user has update access
378 -- for passing in customer_id. For PRM support, it also checks
379 -- if login partner contact has update access for passing in customer id.
380 -- PRM need to make sure to pass in p_partner_cont_party_id for partner contact access
381 -- and pass in partner contact resource id to p_identity_salesforce_id.
382 -- For LAM and CM login, make sure not to pass in this value.
383 -- If user has update access, x_update_access_flag = 'Y'.
384 -- A user can also update all addresses of the customer.
385
386 procedure has_updateCustomerAccess
387 ( p_api_version_number IN NUMBER
388 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
389 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
390 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
391 ,p_admin_flag IN VARCHAR2
392 ,p_admin_group_id IN NUMBER
393 ,p_person_id IN NUMBER
394 ,p_customer_id IN NUMBER
395 ,p_check_access_flag IN VARCHAR2
396 ,p_identity_salesforce_id IN NUMBER
397 ,p_partner_cont_party_id IN NUMBER
398 ,x_return_status OUT NOCOPY VARCHAR2
399 ,x_msg_count OUT NOCOPY NUMBER
400 ,x_msg_data OUT NOCOPY VARCHAR2
401 ,x_update_access_flag OUT NOCOPY VARCHAR2
402 );
403
404 -- API name : has_updateLeadAccess
405 -- Type : Public
406 -- Function : This API is used for checking if login user has update access for
407 -- passing in sales_lead_id. If user has update access,
408 -- then x_update_access_flag = 'Y'. This API doesn't have
409 -- PRM support since PRM doesn't handle sales leads for now.
410 --
411
412 procedure has_updateLeadAccess
413 ( p_api_version_number IN NUMBER
414 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
415 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
416 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
417 ,p_admin_flag IN VARCHAR2
418 ,p_admin_group_id IN NUMBER
419 ,p_person_id IN NUMBER
420 ,p_sales_lead_id IN NUMBER
421 ,p_check_access_flag IN VARCHAR2
422 ,p_identity_salesforce_id IN NUMBER
423 ,p_partner_cont_party_id IN NUMBER
424 ,x_return_status OUT NOCOPY VARCHAR2
425 ,x_msg_count OUT NOCOPY NUMBER
426 ,x_msg_data OUT NOCOPY VARCHAR2
427 ,x_update_access_flag OUT NOCOPY VARCHAR2
428 );
429
430 -- API name : has_updateOpportunityAccess
431 -- Type : Public
432 -- Function : This API is used for checking if login user has update access for passing in opportunity_id.
433 -- For PRM support, it also checks if login partner contact has update access for passing
434 -- in opportunity id. PRM need to make sure to pass in p_partner_cont_party_id for partner
435 -- contact access and pass in partner contact resource id to p_identity_salesforce_id.
436 -- For LAM and CM login, make sure not to pass in this
437 -- value. If user has update access, x_update_ access_flag = 'Y'.
438
439 procedure has_updateOpportunityAccess
440 ( p_api_version_number IN NUMBER
441 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
442 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
443 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
444 ,p_admin_flag IN VARCHAR2
445 ,p_admin_group_id IN NUMBER
446 ,p_person_id IN NUMBER
447 ,p_opportunity_id IN NUMBER
448 ,p_check_access_flag IN VARCHAR2
449 ,p_identity_salesforce_id IN NUMBER
450 ,p_partner_cont_party_id IN NUMBER
451 ,x_return_status OUT NOCOPY VARCHAR2
452 ,x_msg_count OUT NOCOPY NUMBER
453 ,x_msg_data OUT NOCOPY VARCHAR2
454 ,x_update_access_flag OUT NOCOPY VARCHAR2
455 );
456
457 procedure has_leadOwnerAccess
458 ( p_api_version_number IN NUMBER
459 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
460 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
461 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
462 ,p_admin_flag IN VARCHAR2
463 ,p_admin_group_id IN NUMBER
464 ,p_person_id IN NUMBER
465 ,p_sales_lead_id IN NUMBER
466 ,p_check_access_flag IN VARCHAR2
467 ,p_identity_salesforce_id IN NUMBER
468 ,p_partner_cont_party_id IN NUMBER
469 ,x_return_status OUT NOCOPY VARCHAR2
470 ,x_msg_count OUT NOCOPY NUMBER
471 ,x_msg_data OUT NOCOPY VARCHAR2
472 ,x_update_access_flag OUT NOCOPY VARCHAR2
473 );
474
475
476 procedure has_oppOwnerAccess
477 ( p_api_version_number IN NUMBER
478 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
479 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
480 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
481 ,p_admin_flag IN VARCHAR2
482 ,p_admin_group_id IN NUMBER
483 ,p_person_id IN NUMBER
484 ,p_lead_id IN NUMBER
485 ,p_check_access_flag IN VARCHAR2
486 ,p_identity_salesforce_id IN NUMBER
487 ,p_partner_cont_party_id IN NUMBER
488 ,x_return_status OUT NOCOPY VARCHAR2
489 ,x_msg_count OUT NOCOPY NUMBER
490 ,x_msg_data OUT NOCOPY VARCHAR2
491 ,x_update_access_flag OUT NOCOPY VARCHAR2
492 );
493
494
495 procedure has_viewLeadAccess
496 ( p_api_version_number IN NUMBER
497 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
498 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
499 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
500 ,p_admin_flag IN VARCHAR2
501 ,p_admin_group_id IN NUMBER
502 ,p_person_id IN NUMBER
503 ,p_sales_lead_id IN NUMBER
504 ,p_check_access_flag IN VARCHAR2
505 ,p_identity_salesforce_id IN NUMBER
506 ,p_partner_cont_party_id IN NUMBER
507 ,x_return_status OUT NOCOPY VARCHAR2
508 ,x_msg_count OUT NOCOPY NUMBER
509 ,x_msg_data OUT NOCOPY VARCHAR2
510 ,x_view_access_flag OUT NOCOPY VARCHAR2
511 );
512
513 procedure has_viewOpportunityAccess
514 ( p_api_version_number IN NUMBER
515 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
516 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
517 ,p_access_profile_rec IN as_access_pub.access_profile_rec_type
518 ,p_admin_flag IN VARCHAR2
519 ,p_admin_group_id IN NUMBER
520 ,p_person_id IN NUMBER
521 ,p_opportunity_id IN NUMBER
522 ,p_check_access_flag IN VARCHAR2
523 ,p_identity_salesforce_id IN NUMBER
524 ,p_partner_cont_party_id IN NUMBER
525 ,x_return_status OUT NOCOPY VARCHAR2
526 ,x_msg_count OUT NOCOPY NUMBER
527 ,x_msg_data OUT NOCOPY VARCHAR2
528 ,x_view_access_flag OUT NOCOPY VARCHAR2
529 );
530
531
532
533 END AS_ACCESS_PVT;