[Home] [Help]
PACKAGE BODY: APPS.CS_SR_SECURITY_GRP
Source
1 PACKAGE BODY CS_SR_SECURITY_GRP AS
2 /* $Header: csgsecb.pls 115.5 2004/04/16 22:52:07 spusegao noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CS_SR_SECURITY_GRP';
5
6 -- Added for Security Project of 11.5.10
7 PROCEDURE VALIDATE_USER_RESPONSIBILITY (
8 p_api_version IN NUMBER,
9 p_init_msg_list IN VARCHAR2,
10 p_commit IN VARCHAR2,
11 p_incident_id IN NUMBER,
12 x_resp_access_status OUT NOCOPY VARCHAR2,
13 x_return_status OUT NOCOPY VARCHAR2,
14 x_msg_count OUT NOCOPY NUMBER,
15 x_msg_data OUT NOCOPY VARCHAR2 )
16 IS
17 CURSOR c_sr_access_csr IS
18 SELECT 'Y'
19 FROM cs_sr_access_resp_sec
20 WHERE incident_id = p_incident_id ;
21
22 l_access_status VARCHAR2(3) :=NULL;
23 l_api_name_full VARCHAR2(70):= G_PKG_NAME||'.'||'VALIDATE_USER_RESPONSIBILITY';
24
25 BEGIN
26
27 x_return_status := FND_API.G_RET_STS_SUCCESS;
28
29 OPEN c_sr_access_csr;
30 FETCH c_sr_access_csr INTO l_access_status;
31
32 IF (c_sr_access_csr%NOTFOUND) THEN
33 l_access_status := 'N';
34 ELSE
35 l_access_status := 'Y';
36 END IF;
37
38 CLOSE c_sr_access_csr;
39
40 x_resp_access_status := l_access_status;
41
42 EXCEPTION
43 WHEN OTHERS THEN
44 close c_sr_access_csr;
45 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
46 x_resp_access_status := 'N';
47 fnd_message.set_name ('CS', 'CS_API_SR_UNKNOWN_ERROR');
48 fnd_message.set_token ('P_TEXT',l_api_name_full||'-'||SQLERRM);
49 fnd_msg_pub.add;
50
51 END Validate_User_Responsibility;
52
53 -- Added for Security Project of 11.5.10
54 PROCEDURE Validate_Resource (
55 p_api_version IN NUMBER,
56 p_init_msg_list IN VARCHAR2,
57 p_commit IN VARCHAR2,
58 p_sr_rec IN SR_REC_TYPE,
59 px_resource_tbl IN OUT NOCOPY RESOURCE_VALIDATE_TBL_TYPE,
60 x_return_status OUT NOCOPY VARCHAR2,
61 x_msg_count OUT NOCOPY NUMBER,
62 x_msg_data OUT NOCOPY VARCHAR2 )
63 IS
64 lx_resource_tbl Resource_Validate_Tbl_Type := resource_validate_tbl_type();
65 l_access VARCHAR2(3);
66 l_current_count NUMBER;
67
68 l_api_name_full VARCHAR2(50) := G_PKG_NAME||'.'||'Validate_resource';
69
70 CURSOR c_resource_csr(c_resource_id NUMBER) IS
71 SELECT 'Y'
72 FROM cs_jtf_rs_resource_extns_sec
73 WHERE resource_id = c_resource_id;
74
75 l_dummy varchar2(50);
76
77 j NUMBER := 1;
78
79 BEGIN
80
81 x_return_status := FND_API.G_RET_STS_SUCCESS;
82
83 -- set the SR Type id context with the passed in SR type.
84 CS_SR_SECURITY_CONTEXT.SET_SR_SECURITY_CONTEXT (
85 p_context_attribute => 'SRTYPE_ID',
86 p_context_attribute_value => p_sr_rec.incident_type_id);
87
88 FOR i IN 1..px_resource_tbl.COUNT
89 LOOP
90 if ( px_resource_tbl(i).resource_type NOT IN ('RS_GROUP', 'RS_TEAM' ) ) then
91 OPEN c_resource_csr(px_resource_tbl(i).resource_id);
92 FETCH c_resource_csr INTO l_access;
93
94 if(c_resource_csr%FOUND) then
95 lx_resource_tbl.extend;
96 lx_resource_tbl(j) := px_resource_tbl(i);
97 j := j + 1;
98 end if;
99 close c_resource_csr;
100 else
101 lx_resource_tbl.extend;
102 lx_resource_tbl(j) := px_resource_tbl(i);
103 j := j + 1;
104 end if; -- if ( px_resource_tbl(i).resource_type NOT IN ('RS_GROUP', 'RS_TEAM'
105 END LOOP;
106
107 px_resource_tbl := lx_resource_tbl;
108 x_return_status := FND_API.G_RET_STS_SUCCESS;
109
110 EXCEPTION
111 WHEN OTHERS THEN
112 if ( c_resource_csr%ISOPEN ) then
113 close c_resource_csr;
114 end if;
115
116 fnd_message.set_name ('CS', 'CS_API_SR_UNKNOWN_ERROR');
117 fnd_message.set_token ('P_TEXT',l_api_name_full||'-'||SQLERRM);
118 fnd_msg_pub.ADD;
119 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
120 END Validate_Resource;
121
122 END CS_SR_SECURITY_GRP;