DBA Data[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;