DBA Data[Home] [Help]

PACKAGE: APPS.EGO_DATA_SECURITY

Source


1 PACKAGE EGO_DATA_SECURITY AS
2 /* $Header: EGOPFDSS.pls 120.1.12000000.2 2007/07/11 20:27:21 sanmani ship $ */
3 
4 FUNCTION check_function
5   (
6    p_api_version       IN  NUMBER,
7    p_function         IN  VARCHAR2,
8    p_object_name       IN  VARCHAR2,
9    p_instance_pk1_value   IN  VARCHAR2,
10    p_instance_pk2_value   IN  VARCHAR2 DEFAULT NULL,
11    p_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
12    p_instance_pk4_value   IN  VARCHAR2 DEFAULT NULL,
13    p_instance_pk5_value   IN  VARCHAR2 DEFAULT NULL,
14    p_user_name            in varchar2  default null
15  )
16  RETURN VARCHAR2;
17     -- Start OF comments
18     -- API name  : check_function
19     -- TYPE      : Public
20     -- Pre-reqs  : None
21     -- FUNCTION  : Determines whether user is granted a particular
22     --             function for a particular object instance.
23     --
24     -- Parameters:
25     --     IN    : p_api_version      IN  NUMBER (required)
26     --             API Version of this procedure (currently 1.0)
27     --
28     --             p_function         IN  VARCHAR2 (required)
29     --             name of the function
30     --
31     --             p_object_name      IN  VARCHAR2 (required)
32     --             object on which the grant should be checked
33     --             from fnd_objects table.
34     --
35     --             p_instance_pk[1..5]_value     IN  NUMBER (required)
36     --             Primary key values for the object instance, with order
37     --             corresponding to the order of the PKs in the
38     --             FND_OBJECTS table.  Most objects will only have a
39     --             few primary key columns so just let the higher,
40     --             unused column values default to NULL.
41     --
42     --             p_user_name IN VARCHAR2 (optional)
43     --             User to check grant for, from FND_USER or another
44     --             table (like HZ_PARTIES) that the view column
45     --             WF_ROLES.NAME is based on.  Pass the same value stored
46     --             in the GRANTEE_KEY column in FND_GRANTS.
47     --             Examples of values that might be passed: 'SYSADMIN',
48     --             'HZ_PARTIES:1234'
49     --             Defaults to current FND user if null.
50     --
51     --     OUT  :
52     --             RETURNs 1 byte result code:
53     --                   'T'  function is granted.
54     --                   'F'  not granted.
55     --                   'E'  Error
56     --                   'U'  Unexpected Error
57     --
58     --                If 'E' or 'U' is returned, there will be an error
59     --                message on the FND_MESSAGE stack which
60     --                can be retrieved with FND_MESSAGE.GET_ENCODED()
61     --                If that message is not used, it must be cleared.
62     --
63 
64     -- Version: Current Version 1.0
65     -- Previous Version :  None
66     -- Notes  :
67     --
68     -- END OF comments
69   ----------------------------------------------------------------
70  FUNCTION check_inherited_function
71   (
72    p_api_version       IN  NUMBER,
73    p_function         IN  VARCHAR2,
74    p_object_name       IN  VARCHAR2,
75    p_instance_pk1_value   IN  VARCHAR2,
76    p_instance_pk2_value   IN  VARCHAR2 DEFAULT NULL,
77    p_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
78    p_instance_pk4_value   IN  VARCHAR2 DEFAULT NULL,
79    p_instance_pk5_value   IN  VARCHAR2 DEFAULT NULL,
80    p_user_name            IN  varchar2  default null,
81    p_object_type          IN  VARCHAR2 default null,
82    p_parent_object_name   IN  VARCHAR2,
83    p_parent_instance_pk1_value   IN  VARCHAR2,
84    p_parent_instance_pk2_value   IN  VARCHAR2 DEFAULT NULL,
85    p_parent_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
86    p_parent_instance_pk4_value   IN  VARCHAR2 DEFAULT NULL,
87    p_parent_instance_pk5_value   IN  VARCHAR2 DEFAULT NULL
88  )
89  RETURN VARCHAR2;
90 
91   ----------------------------------------------------------------
92   TYPE EGO_PRIVILEGE_NAME_TABLE_TYPE IS TABLE OF VARCHAR2(480)
93   INDEX BY BINARY_INTEGER;
94 
95    PROCEDURE get_functions
96   (
97    p_api_version         IN  NUMBER,
98    p_object_name         IN  VARCHAR2,
99    p_instance_pk1_value   IN  VARCHAR2,
100    p_instance_pk2_value  IN  VARCHAR2 DEFAULT NULL,
101    p_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
102    p_instance_pk4_value  IN  VARCHAR2 DEFAULT NULL,
103    p_instance_pk5_value  IN  VARCHAR2 DEFAULT NULL,
104    p_user_name           IN  varchar2 default null,
105    x_return_status       OUT NOCOPY VARCHAR2,
106    x_privilege_tbl       OUT NOCOPY EGO_PRIVILEGE_NAME_TABLE_TYPE
107   ) ;
108     -- Start OF comments
109     -- API name  : get_functions
110     -- TYPE      : Public
111     -- Pre-reqs  : None
112     -- FUNCTION  : get the list of functions user has on the
113     --             object instance
114     --
115     -- Parameters:
116     --     IN    : p_api_version      IN  NUMBER (required)
117     --             API Version of this procedure (currently 1.0)
118     --
119     --             p_object_name      IN  VARCHAR2 (required)
120     --             object on which the grant should be checked
121     --             from fnd_objects table.
122     --
123     --             p_instance_pk[1..5]_value   IN  NUMBER (required)
124     --             Primary keys values to an object instance, corresponding
125     --             to the order in the FND_OBJECTS table.  Most objects will
126     --             only have a few primary key columns so just pass
127     --             NULL for the unused higher columns.
128     --
129     --             p_user_name IN VARCHAR2 (optional)
130     --             User to check grant for, from FND_USER or another
131     --             table (like HZ_PARTIES) that the view column
132     --             WF_ROLES.NAME is based on.  Pass the same value stored
133     --             in the GRANTEE_KEY column in FND_GRANTS.
134     --             Examples of values that might be passed: 'SYSADMIN',
135     --             'HZ_PARTIES:1234'
136     --             Defaults to current FND user if null.
137     --
138     --     OUT  :
139     --             X_return_status    OUT VARCHAR2(1)
140     --             Result of all the operations
141     --                   'T'  Successfully got list of functions
142     --                   'F'  No functions granted
143     --                   'E'  Error
144     --                   'U'  Unexpected Error
145     --
146     --                If 'E' or 'U' is returned, there will be an error
147     --                message on the FND_MESSAGE stack which
148     --                can be retrieved with FND_MESSAGE.GET_ENCODED()
149     --                If that message is not used, it must be cleared.
150     --
151     --             x_functions_tbl        OUT TABLE
152     --                list of functions  available
153     --
154     -- Version: Current Version 1.0
155     -- Previous Version :  None
156     -- Notes  :
157     --
158     -- END OF comments
159   ----------------------------------------------------------------
160 
161    PROCEDURE get_inherited_functions
162   (
163    p_api_version         IN  NUMBER,
164    p_object_name         IN  VARCHAR2,
165    p_instance_pk1_value   IN  VARCHAR2,
166    p_instance_pk2_value  IN  VARCHAR2 DEFAULT NULL,
167    p_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
168    p_instance_pk4_value  IN  VARCHAR2 DEFAULT NULL,
169    p_instance_pk5_value  IN  VARCHAR2 DEFAULT NULL,
170    p_user_name           IN  varchar2 default null,
171    p_object_type          IN  VARCHAR2 default null,
172    p_parent_object_name   IN  VARCHAR2,
173    p_parent_instance_pk1_value   IN  VARCHAR2,
174    p_parent_instance_pk2_value   IN  VARCHAR2 DEFAULT NULL,
175    p_parent_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
176    p_parent_instance_pk4_value   IN  VARCHAR2 DEFAULT NULL,
177    p_parent_instance_pk5_value   IN  VARCHAR2 DEFAULT NULL,
178    x_return_status       OUT NOCOPY VARCHAR2,
179    x_privilege_tbl       OUT NOCOPY EGO_VARCHAR_TBL_TYPE
180   ) ;
181 
182   ----------------------------------------------------------------
183   PROCEDURE get_security_predicate
184   (
185     p_api_version      IN  NUMBER,
186     p_function         IN  VARCHAR2 default null,
187     p_object_name      IN  VARCHAR2,
188     p_grant_instance_type  IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
189     p_user_name        IN  VARCHAR2 default null,
190     /* statement_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= to check existence*/
191     p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER',
192     p_pk1_alias        IN  VARCHAR2 DEFAULT NULL,
193     p_pk2_alias        IN  VARCHAR2 DEFAULT NULL,
194     p_pk3_alias        IN  VARCHAR2 DEFAULT NULL,
195     p_pk4_alias        IN  VARCHAR2 DEFAULT NULL,
196     p_pk5_alias        IN  VARCHAR2 DEFAULT NULL,
197     x_predicate        OUT NOCOPY VARCHAR2,
198     x_return_status    OUT NOCOPY VARCHAR2
199   )  ;
200     -- Start OF comments
201     -- API name  : get_security_predicate
202     -- TYPE      : Public
203     -- Pre-reqs  : None
204     -- FUNCTION  : get Union of all predicates for user on a function
205     --
206     -- Parameters:
207     --     IN    : p_api_version      IN  NUMBER (required)
208     --             API Version of this procedure (currently 1.0)
209     --
210     --             p_function         IN  VARCHAR2 (optional)
211     --             name of the function
212     --             If null, return union of predicates for all functions
213     --             granted on this object type.
214     --
215     --             p_object_name      IN  VARCHAR2 (required)
216     --             object on which the predicate should be checked.
217     --             from fnd_objects table.
218     --
219     --             p_grant_instance_type      IN  VARCHAR2 (optional)
220     --             Can take on one of the following values:
221     --                'INSTANCE'- returns predicate for grants with
222     --                            instance_type = 'INSTANCE'
223     --                'SET'- returns predicate for grants with
224     --                            instance_type = 'SET'
225     --                'UNIVERSAL'(default)- returns predicate for
226     --                            grants with any instance_type.
227     --             Note: 'SET' mode does not support aliases.
228     --
229     --             p_user_name IN VARCHAR2 (optional)
230     --             User to check grant for, from FND_USER or another
231     --             table (like HZ_PARTIES) that the view column
232     --             WF_ROLES.NAME is based on.  Pass the same value stored
233     --             in the GRANTEE_KEY column in FND_GRANTS.
234     --             Examples of values that might be passed: 'SYSADMIN',
235     --             'HZ_PARTIES:1234'
236     --             Defaults to current FND user if null.
237     --
238     --             p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER' (optional)
239     --             Can take one of the following values:
240     --                'OTHER'- This is the default.  This means the predicate
241     --                         returned will not be attached by policy
242     --                         to the base table ala VPD.  In practice this
243     --                         allows the predicate to have a subselect against
244     --                         the base table, which allows aliases and may
245     --                         improve performance.
246     --                'BASE'-  Pass this type if the predicate will be attached
247     --                         by policy to the base table.  Use 'BASE' when
248     --                         VPD will use the returned predicate to control
249     --                         access.  In practice this means the predicate
250     --                         cannot have subselects against the base table,
251     --                         prevents aliases and may lower performance.
252     --                'EXISTS'-  Pass this type if the predicate will be
253     --                         simply used to determine if there are any rows
254     --                         at all that are available.  The predicate
255     --                         returned will be of the format 'EXISTS ...'
256     --
257     --            p_pk[1..5]_alias  IN  VARCHAR2 (optional)
258     --            Normally the caller wouldn't pass any values for these.
259     --            Column aliases for primary keys.  Pass column names
260     --            (optionally including table aliases) of the relevant
261     --            columns, if they are different from the base column names
262     --            as defined in FND_OBJECTS.  For example 'MY_VIEW.MY_APP_ID'
263     --            might be passed in as a column alias for the first PK, which
264     --            was defined in FND_OBJECTS as 'APPLICATION_ID'.
265     --            Column aliases are not allowed for p_statement_type='BASE',
266     --            or for p_grant_instance_type ='SET'.
267     --
268     --     OUT  :
269     --             X_return_status    OUT VARCHAR2(1)
270     --             Result of all the operations
271     --                   'T'  Successfully got predicate
272     --                   'F'  No predicates granted
273     --                   'E'  Error
274     --                   'U'  Unexpected Error
275     --                   'L'  Value too long- predicate too large for
276     --                        database VPD.
277     --
278     --                If 'E', 'U, or 'L' is returned, there will be an error
279     --                message on the FND_MESSAGE stack which
280     --                can be retrieved with FND_MESSAGE.GET_ENCODED()
281     --                If that message is not used, it must be cleared.
282     --
283     --             Return Value:
284     --                All the available predicates from the grants on
285     --                this function for this user, ORed together to form
286     --                a big gob of SQL that can be dropped into the where
287     --                clause.  Does not include 'WHERE'.
288     --
289     -- Version: Current Version 1.0
290     -- Previous Version :  None
291     -- Notes  :
292     --
293     -- END OF comments
294 -------------------------------------------------------------------------
295 PROCEDURE get_sec_predicate_with_exists
296   (
297     p_api_version      IN  NUMBER,
298     p_function         IN  VARCHAR2 default null,
299     p_object_name      IN  VARCHAR2,
300     p_grant_instance_type  IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
301     p_party_id         IN NUMBER,
302     /* stmnt_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= for checking existence. */
303     p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER',
304     p_pk1_alias        IN  VARCHAR2 DEFAULT NULL,
305     p_pk2_alias        IN  VARCHAR2 DEFAULT NULL,
306     p_pk3_alias        IN  VARCHAR2 DEFAULT NULL,
307     p_pk4_alias        IN  VARCHAR2 DEFAULT NULL,
308     p_pk5_alias        IN  VARCHAR2 DEFAULT NULL,
309     x_predicate        OUT NOCOPY VARCHAR2,
310     x_return_status    OUT NOCOPY VARCHAR2
311   );
312 --------------------------------------------------------------------------
313 
314 PROCEDURE get_sec_predicate_with_clause
315   (
316     p_api_version      IN  NUMBER,
317     p_function         IN  VARCHAR2 default null,
318     p_object_name      IN  VARCHAR2,
319     p_grant_instance_type  IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
320     p_party_id         IN  NUMBER,
321     p_append_inst_set_predicate  IN  VARCHAR2 default null,
322     /* stmnt_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= for checking existence. */
323     p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER',
327     p_pk4_alias        IN  VARCHAR2 DEFAULT NULL,
324     p_pk1_alias        IN  VARCHAR2 DEFAULT NULL,
325     p_pk2_alias        IN  VARCHAR2 DEFAULT NULL,
326     p_pk3_alias        IN  VARCHAR2 DEFAULT NULL,
328     p_pk5_alias        IN  VARCHAR2 DEFAULT NULL,
329     x_predicate        OUT NOCOPY VARCHAR2,
330     x_return_status    OUT NOCOPY VARCHAR2
331   );
332 ----------------------------------------------------------------------------
333   TYPE PARENT_OBJECT_TABLE_TYPE IS TABLE OF VARCHAR2(30)
334   INDEX BY BINARY_INTEGER;
335 
336   TYPE RELATIONSHIP_SQL_TABLE_TYPE IS TABLE OF VARCHAR2(300)
337   INDEX BY BINARY_INTEGER;
338 
339     PROCEDURE get_inherited_predicate
340   (
341     p_api_version      IN  NUMBER,
342     p_function         IN  VARCHAR2 default null,
343     p_object_name      IN  VARCHAR2,
344     p_grant_instance_type  IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
345     p_user_name        IN  VARCHAR2 default null,
346     /* statement_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= to check existence*/
347     p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER',
348     p_pk1_alias        IN  VARCHAR2 DEFAULT NULL,
349     p_pk2_alias        IN  VARCHAR2 DEFAULT NULL,
350     p_pk3_alias        IN  VARCHAR2 DEFAULT NULL,
351     p_pk4_alias        IN  VARCHAR2 DEFAULT NULL,
352     p_pk5_alias        IN  VARCHAR2 DEFAULT NULL,
353     p_object_type      IN  VARCHAR2 default null,
354     p_parent_object_tbl   IN EGO_VARCHAR_TBL_TYPE,
355     p_relationship_sql_tbl   IN EGO_VARCHAR_TBL_TYPE,
356     p_parent_obj_alias_tbl   IN EGO_VARCHAR_TBL_TYPE,
357     x_predicate        OUT NOCOPY VARCHAR2,
358     x_return_status    OUT NOCOPY VARCHAR2
359   )  ;
360 
361 --------------------------------------------------------------------------
362 
363    PROCEDURE get_inherited_predicate
364   (
365     p_api_version      IN  NUMBER,
366     p_function         IN  VARCHAR2 default null,
367     p_object_name      IN  VARCHAR2,
368     p_grant_instance_type  IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
369     p_user_name        IN  VARCHAR2 default null,
370     /* statement_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= to check existence*/
371     p_statement_type   IN  VARCHAR2 DEFAULT 'OTHER',
372     p_pk1_alias        IN  VARCHAR2 DEFAULT NULL,
373     p_pk2_alias        IN  VARCHAR2 DEFAULT NULL,
374     p_pk3_alias        IN  VARCHAR2 DEFAULT NULL,
375     p_pk4_alias        IN  VARCHAR2 DEFAULT NULL,
376     p_pk5_alias        IN  VARCHAR2 DEFAULT NULL,
377     p_object_type      IN  VARCHAR2 default null,
378     p_parent_object_tbl   IN EGO_VARCHAR_TBL_TYPE,
379     p_relationship_sql_tbl   IN EGO_VARCHAR_TBL_TYPE,
380     p_parent_obj_pk1alias_tbl   IN EGO_VARCHAR_TBL_TYPE,
381     p_parent_obj_pk2alias_tbl   IN EGO_VARCHAR_TBL_TYPE,
382     x_predicate        OUT NOCOPY VARCHAR2,
383     x_return_status    OUT NOCOPY VARCHAR2
384   )  ;
385 
386 --------------------------------------------------------------------------
387 
388  PROCEDURE get_inherited_predicate
389   (
390     p_api_version                    IN  NUMBER,
391     p_function                       IN  VARCHAR2 default null,
392     p_object_name                    IN  VARCHAR2,
393     p_grant_instance_type            IN  VARCHAR2 DEFAULT 'UNIVERSAL',/* SET, INSTANCE*/
394     p_user_name                      IN  VARCHAR2 default null,
395     /* statement_type: 'OTHER', 'BASE'=VPD, 'EXISTS'= to check existence*/
396     p_statement_type                 IN  VARCHAR2 DEFAULT 'OTHER',
397     p_pk1_alias                      IN  VARCHAR2 DEFAULT NULL,
398     p_pk2_alias                      IN  VARCHAR2 DEFAULT NULL,
399     p_pk3_alias                      IN  VARCHAR2 DEFAULT NULL,
400     p_pk4_alias                      IN  VARCHAR2 DEFAULT NULL,
401     p_pk5_alias                      IN  VARCHAR2 DEFAULT NULL,
402     p_object_type                    IN VARCHAR2 default null,
403     p_parent_object_tbl              IN EGO_VARCHAR_TBL_TYPE,
404     p_relationship_sql_tbl           IN EGO_VARCHAR_TBL_TYPE,
405     p_parent_obj_pk1alias_tbl        IN EGO_VARCHAR_TBL_TYPE,
406     p_parent_obj_pk2alias_tbl        IN EGO_VARCHAR_TBL_TYPE,
407     x_predicate                      OUT NOCOPY varchar2,
408     x_clob_predicate                 OUT NOCOPY CLOB,
409     x_return_status                  OUT NOCOPY varchar2
410   );
411 
412 ----------------------------------------------------------------------------
413 
414 TYPE EGO_INSTANCE_PK_RECORD is record
415               (PK1_VALUE    varchar2(256),
416                PK2_VALUE    varchar2(256),
417                PK3_VALUE    varchar2(256),
418                PK4_VALUE    varchar2(256),
419                PK5_VALUE    varchar2(256));
420 
421 TYPE EGO_INSTANCE_TABLE_TYPE IS TABLE OF EGO_INSTANCE_PK_RECORD
422    INDEX BY BINARY_INTEGER;
423 
424 PROCEDURE get_instances
425 (
426     p_api_version    IN  NUMBER,
427     p_function       IN  VARCHAR2 DEFAULT NULL,
428     p_object_name    IN  VARCHAR2,
429     p_user_name      IN  VARCHAR2 DEFAULT NULL,
430     x_return_status  OUT NOCOPY VARCHAR2,
431     x_object_key_tbl OUT NOCOPY EGO_INSTANCE_TABLE_TYPE
432 );
433     -- Start OF comments
434     -- API name  : get_instances
435     -- TYPE      : Public
436     -- Pre-reqs  : None
437     -- FUNCTION  : get list of all instances granted to a particular user
438     --              on a particular function.
439     --
440     -- Parameters:
441     --     IN    : p_api_version      IN  NUMBER (required)
445     --             name of the function
442     --             API Version of this procedure (currently 1.0)
443     --
444     --             p_function         IN  VARCHAR2 (optional)
446     --             If null, return union of predicates for all functions
447     --             granted on this object type.
448     --
449     --             p_object_name      IN  VARCHAR2 (required)
450     --             object on which the predicate should be checked.
451     --             from fnd_objects table.
452     --
453     --             p_user_name IN VARCHAR2 (optional)
454     --             User to check grant for, from FND_USER or another
455     --             table (like HZ_PARTIES) that the view column
456     --             WF_ROLES.NAME is based on.  Pass the same value stored
457     --             in the GRANTEE_KEY column in FND_GRANTS.
458     --             Examples of values that might be passed: 'SYSADMIN',
459     --             'HZ_PARTIES:1234'
460     --             Defaults to current FND user if null.
461     --
462     --     OUT  :
463     --             X_return_status    OUT VARCHAR2(1)
464     --             Result of all the operations
465     --                   'T'  Successfully got instances
466     --                   'F'  No instances accessible
467     --                   'E'  Error
468     --                   'U'  Unexpected Error
469     --
470     --                If 'E', or 'U' is returned, there will be an error
471     --                message on the FND_MESSAGE stack which
472     --                can be retrieved with FND_MESSAGE.GET_ENCODED()
473     --                If that message is not used, it must be cleared.
474     --
475     --             Return Value:
476     --                Table of primary keys of all the available instances
477     --                from the grants on this function for this user.
478     --
479     -- Version: Current Version 1.0
480     -- Previous Version :  None
481     -- Notes  :
482     --
483     -- END OF comments
484 
485 FUNCTION check_instance_in_set
486  (
487   p_api_version          IN  NUMBER,
488   p_instance_set_name    IN  VARCHAR2,
489   p_instance_pk1_value   IN  VARCHAR2,
490   p_instance_pk2_value   IN  VARCHAR2 DEFAULT NULL,
491   p_instance_pk3_value   IN  VARCHAR2 DEFAULT NULL,
492   p_instance_pk4_value   IN  VARCHAR2 DEFAULT NULL,
493   p_instance_pk5_value   IN  VARCHAR2 DEFAULT NULL
494  ) return VARCHAR2;
495     -- Start OF comments
496     -- API name  : check_instance_in_set
497     -- TYPE      : Public
498     -- Pre-reqs  : None
499     -- FUNCTION  : Check whether a particular object instance is part of an
500     --             instance set.
501     --
502     -- Parameters:
503     --     IN    : p_api_version      IN  NUMBER (required)
504     --             API Version of this procedure (currently 1.0)
505     --
506     --             p_instance_set_name in varchar2
507     --             the instance set name for the instance set to be checked.
508     --
509     --             p_instance_pk[1..5]_value     IN  NUMBER (required)
510     --             Primary key values for the object instance, with order
511     --             corresponding to the order of the PKs in the
512     --             FND_OBJECTS table.  Most objects will only have a
513     --             few primary key columns so just let the higher,
514     --             unused column values default to NULL.
515     --
516     --     OUT  :
517     --             RETURNs 1 byte result code:
518     --                   'T'  instance is part of instance set.
519     --                   'F'  instance is not part of instance set.
520     --                   'E'  Error
521     --                   'U'  Unexpected Error
522     --
523     --                If 'E' or 'U' is returned, there will be an error
524     --                message on the FND_MESSAGE stack which
525     --                can be retrieved with FND_MESSAGE.GET_ENCODED()
526     --                If that message is not used, it must be cleared.
527     --
528     --
529     -- Version: Current Version 1.0
530     -- Previous Version :  None
531     -- Notes  :
532     --
533     -- END OF comments
534 
535 -- signature to use if caller wants to specify OWNER
536 PROCEDURE Create_Role_Mapping(
537          p_api_version                  IN   NUMBER
538         ,p_parent_obj_name              IN   VARCHAR2
539         ,p_parent_role_name             IN   VARCHAR2
540         ,p_child_obj_name               IN   VARCHAR2
541         ,p_child_object_type            IN   VARCHAR2
542         ,p_child_role_name              IN   VARCHAR2
543         ,p_owner                        IN   NUMBER
544         ,p_init_msg_list                IN   VARCHAR2   :=  fnd_api.g_FALSE
545         ,p_commit                       IN   VARCHAR2   :=  fnd_api.g_FALSE
546         ,x_return_status                OUT  NOCOPY VARCHAR2
547         ,x_errorcode                    OUT  NOCOPY NUMBER
548         ,x_msg_count                    OUT  NOCOPY NUMBER
549         ,x_msg_data                     OUT  NOCOPY VARCHAR2
550 ) ;
551 
552 -- signature to use if caller does not want to specify OWNER
553 PROCEDURE Create_Role_Mapping(
554          p_api_version                  IN   NUMBER
555         ,p_parent_obj_name              IN   VARCHAR2
556         ,p_parent_role_name             IN   VARCHAR2
557         ,p_child_obj_name               IN   VARCHAR2
561         ,p_commit                       IN   VARCHAR2   :=  fnd_api.g_FALSE
558         ,p_child_object_type            IN   VARCHAR2
559         ,p_child_role_name              IN   VARCHAR2
560         ,p_init_msg_list                IN   VARCHAR2   :=  fnd_api.g_FALSE
562         ,x_return_status                OUT  NOCOPY VARCHAR2
563         ,x_errorcode                    OUT  NOCOPY NUMBER
564         ,x_msg_count                    OUT  NOCOPY NUMBER
565         ,x_msg_data                     OUT  NOCOPY VARCHAR2
566 ) ;
567 
568 -- signature to use if caller wants to specify OWNER
569 PROCEDURE Update_Role_Mapping(
570          p_api_version                  IN   NUMBER
571         ,p_parent_obj_name              IN   VARCHAR2
572         ,p_parent_role_name             IN   VARCHAR2
573         ,p_child_obj_name               IN   VARCHAR2
574         ,p_child_object_type            IN   VARCHAR2
575         ,p_child_role_name              IN   VARCHAR2
576         ,p_owner                        IN   NUMBER
577         ,p_init_msg_list                IN   VARCHAR2   :=  fnd_api.g_FALSE
578         ,p_commit                       IN   VARCHAR2   :=  fnd_api.g_FALSE
579         ,x_return_status                OUT  NOCOPY VARCHAR2
580         ,x_errorcode                    OUT  NOCOPY NUMBER
581         ,x_msg_count                    OUT  NOCOPY NUMBER
582         ,x_msg_data                     OUT  NOCOPY VARCHAR2
583 ) ;
584 
585 -- signature to use if caller does not want to specify OWNER
586 PROCEDURE Update_Role_Mapping(
587          p_api_version                  IN   NUMBER
588         ,p_parent_obj_name              IN   VARCHAR2
589         ,p_parent_role_name             IN   VARCHAR2
590         ,p_child_obj_name               IN   VARCHAR2
591         ,p_child_object_type            IN   VARCHAR2
592         ,p_child_role_name              IN   VARCHAR2
593         ,p_init_msg_list                IN   VARCHAR2   :=  fnd_api.g_FALSE
594         ,p_commit                       IN   VARCHAR2   :=  fnd_api.g_FALSE
595         ,x_return_status                OUT  NOCOPY VARCHAR2
596         ,x_errorcode                    OUT  NOCOPY NUMBER
597         ,x_msg_count                    OUT  NOCOPY NUMBER
598         ,x_msg_data                     OUT  NOCOPY VARCHAR2
599 ) ;
600 
601 PROCEDURE Delete_Role_Mapping(
602          p_api_version                  IN   NUMBER
603         ,p_parent_obj_name              IN   VARCHAR2
604         ,p_parent_role_name             IN   VARCHAR2
605         ,p_child_obj_name               IN   VARCHAR2
606         ,p_child_object_type            IN   VARCHAR2
607         ,p_init_msg_list                IN   VARCHAR2   :=  fnd_api.g_FALSE
608         ,p_commit                       IN   VARCHAR2   :=  fnd_api.g_FALSE
609         ,x_return_status                OUT  NOCOPY VARCHAR2
610         ,x_errorcode                    OUT  NOCOPY NUMBER
611         ,x_msg_count                    OUT  NOCOPY NUMBER
612         ,x_msg_data                     OUT  NOCOPY VARCHAR2
613 ) ;
614 
615  ----------------------------------------------------------------
616 
617    PROCEDURE get_role_functions
618   (
619    p_api_version         IN  NUMBER,
620    p_role_name           IN  VARCHAR2,
621    x_return_status       OUT NOCOPY VARCHAR2,
622    x_privilege_tbl       OUT NOCOPY EGO_VARCHAR_TBL_TYPE
623   ) ;
624 
625   ----------------------------------------------------------------
626 
627     PROCEDURE get_inherited_functions
628   (
629    p_api_version                 IN  NUMBER,
630    p_object_name                 IN  VARCHAR2,
631    p_instance_pk1_value          IN  VARCHAR2,
632    p_instance_pk2_value          IN  VARCHAR2 DEFAULT NULL,
633    p_instance_pk3_value          IN  VARCHAR2 DEFAULT NULL,
634    p_instance_pk4_value          IN  VARCHAR2 DEFAULT NULL,
635    p_instance_pk5_value          IN  VARCHAR2 DEFAULT NULL,
636    p_user_name                   IN  VARCHAR2 DEFAULT NULL,
637    p_object_type                 IN  VARCHAR2 DEFAULT NULL,
638    p_parent_object_name_tbl      IN  EGO_VARCHAR_TBL_TYPE,
639    p_parent_object_sql_tbl       IN  EGO_VARCHAR_TBL_TYPE,
640    x_return_status               OUT NOCOPY VARCHAR2,
641    x_privilege_tbl               OUT NOCOPY EGO_VARCHAR_TBL_TYPE
642   ) ;
643 
644 
645 FUNCTION check_inherited_function
646   (
647    p_api_version                 IN  NUMBER,
648    p_function                    IN  VARCHAR2,
649    p_object_name                 IN  VARCHAR2,
650    p_instance_pk1_value          IN  VARCHAR2,
651    p_instance_pk2_value          IN  VARCHAR2 DEFAULT NULL,
652    p_instance_pk3_value          IN  VARCHAR2 DEFAULT NULL,
653    p_instance_pk4_value          IN  VARCHAR2 DEFAULT NULL,
654    p_instance_pk5_value          IN  VARCHAR2 DEFAULT NULL,
655    p_parent_object_name_tbl      IN  EGO_VARCHAR_TBL_TYPE,
656    p_parent_object_sql_tbl       IN  EGO_VARCHAR_TBL_TYPE,
657    p_user_name                   IN  VARCHAR2 DEFAULT NULL,
658    p_object_type                 IN  VARCHAR2 DEFAULT NULL
659  )
660   RETURN VARCHAR2;
661 
662 END EGO_DATA_SECURITY;