1 PACKAGE CS_INCIDENTLINKS_UTIL AUTHID CURRENT_USER AS
2 /* $Header: csusrls.pls 115.7 2003/09/17 06:58:53 dejoseph noship $ */
3
4 -- Procedure to validate if the passed in link type id is valid.
5 -- Basic sanity validation
6 PROCEDURE VALIDATE_LINK_TYPE (
7 P_LINK_TYPE_ID IN NUMBER := NULL,
8 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
9 X_MSG_COUNT OUT NOCOPY NUMBER,
10 X_MSG_DATA OUT NOCOPY VARCHAR2 );
11
12 -- Procedure to validate if the passed in subject, object and link type
13 -- are valid combination.
14 -- Rule : A link instance should have a valid subject type, object type and
15 -- link type combination.
16 PROCEDURE VALIDATE_LINK_SUB_OBJ_TYPE (
17 P_SUBJECT_TYPE IN VARCHAR2,
18 P_OBJECT_TYPE IN VARCHAR2,
19 P_LINK_TYPE_ID IN NUMBER,
20 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
21 X_MSG_COUNT OUT NOCOPY NUMBER,
22 X_MSG_DATA OUT NOCOPY VARCHAR2 );
23
24 -- Procedure to validate if the passed in subject and object details are
25 -- valid defnitions in their respective schemas. ie. If the subject type
26 -- is SR, need to validate if the 'subject_id' is a valid 'incident_id'
27 -- in cs_incidents_all_b table.
28 -- This procedure can be called with either the subject details or the
29 -- object details.
30 PROCEDURE VALIDATE_LINK_DETAILS (
31 P_SUBJECT_ID IN NUMBER := NULL,
32 P_SUBJECT_TYPE IN VARCHAR2 := NULL,
33 P_OBJECT_ID IN NUMBER := NULL,
34 P_OBJECT_TYPE IN VARCHAR2 := NULL,
35 P_OBJECT_NUMBER IN VARCHAR2 := NULL,
36 X_SUBJECT_NUMBER OUT NOCOPY VARCHAR2,
37 X_OBJECT_NUMBER OUT NOCOPY VARCHAR2,
38 X_SUBJECT_TYPE_NAME OUT NOCOPY VARCHAR2,
39 X_OBJECT_TYPE_NAME OUT NOCOPY VARCHAR2,
40 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
41 X_MSG_COUNT OUT NOCOPY NUMBER,
42 X_MSG_DATA OUT NOCOPY VARCHAR2 );
43
44 -- Procedure to validate the uniqueness of the link being created.
45 -- Rule : Two linked objects cannot have more than one link pair between them.
46 -- Note : Object number is an IN parameter, because sometimes the object_id may
47 -- be null.
48 PROCEDURE VALIDATE_LINK_UNIQUENESS (
49 P_SUBJECT_ID IN NUMBER,
50 P_SUBJECT_TYPE IN VARCHAR2,
51 P_OBJECT_ID IN NUMBER,
52 P_OBJECT_TYPE IN VARCHAR2,
53 P_OBJECT_NUMBER IN VARCHAR2,
54 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
55 X_MSG_COUNT OUT NOCOPY NUMBER,
56 X_MSG_DATA OUT NOCOPY VARCHAR2 );
57
58 -- Procedure to validate if the creation of the link will result in a circular
59 -- dependency.
60 -- Rule : Prevent creation of circular dependency regardless of link type.
61 PROCEDURE VALIDATE_LINK_CIRCULARS (
62 P_SUBJECT_ID IN NUMBER,
63 P_SUBJECT_TYPE IN VARCHAR2,
64 P_OBJECT_ID IN NUMBER,
65 P_OBJECT_TYPE IN VARCHAR2,
66 P_LINK_TYPE_ID IN NUMBER,
67 P_SUBJECT_NUMBER IN VARCHAR2,
68 P_OBJECT_NUMBER IN VARCHAR2,
69 P_SUBJECT_TYPE_NAME IN VARCHAR2,
70 P_OBJECT_TYPE_NAME IN VARCHAR2,
71 P_OPERATION_MODE IN VARCHAR2 := 'CREATE',
72 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
73 X_MSG_COUNT OUT NOCOPY NUMBER,
74 X_MSG_DATA OUT NOCOPY VARCHAR2 );
75
76 -- Procedure to validate that a duplicate link can have exactly only one
77 -- original. For eg. if SR1 is duplicate of SR2, SR1 cannot be a duplicate
78 -- of SR3 as well. Rather SR3 should be created as a duplicate of SR2.
79 -- Rule : A duplicate object must have exactly 1 original.
80 PROCEDURE VALIDATE_LINK_DUPLICATES (
81 P_SUBJECT_ID IN NUMBER,
82 P_SUBJECT_TYPE IN VARCHAR2,
83 P_OBJECT_ID IN NUMBER,
84 P_OBJECT_TYPE IN VARCHAR2,
85 P_LINK_TYPE_ID IN NUMBER,
86 P_SUBJECT_NUMBER IN VARCHAR2,
87 P_OBJECT_NUMBER IN VARCHAR2,
88 P_SUBJECT_TYPE_NAME IN VARCHAR2,
89 P_OBJECT_TYPE_NAME IN VARCHAR2,
90 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
91 X_MSG_COUNT OUT NOCOPY NUMBER,
92 X_MSG_DATA OUT NOCOPY VARCHAR2 );
93
94 -- Validation procedure to implement Service Security introduced in
95 -- R11.5.10
96 -- Procedure to validate if the responsibilty creating / updating the link
97 -- has access to the subject and/or object if they are service requests.
98 -- The query is based on the incidents secure view for which a VPD policy
99 -- is defined.
100 PROCEDURE VALIDATE_SR_SEC_ACCESS (
101 P_INCIDENT_ID IN NUMBER,
102 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
103 X_MSG_COUNT OUT NOCOPY NUMBER,
104 X_MSG_DATA OUT NOCOPY VARCHAR2 );
105
106 END CS_INCIDENTLINKS_UTIL;