[Home] [Help]
PACKAGE BODY: APPS.PVX_EVENT_PKG
Source
1 PACKAGE BODY pvx_event_pkg AS
2 /*$Header: pvxbuevb.pls 115.1 2003/09/01 06:48:55 nramu noship $ */
3
4 FUNCTION Item_Key(p_event_name IN VARCHAR2) RETURN VARCHAR2
5 -----------------------------------------------------
6 -- Return Item_Key according to Hz Event to be raised
7 -- Item_Key is <Event_Name>-pvwfapp_s.nextval
8 -----------------------------------------------------
9 IS
10 RetKey VARCHAR2(240);
11 BEGIN
12 SELECT p_event_name || pv_wf_items_s.nextval INTO RetKey FROM DUAL;
13 RETURN RetKey;
14 END Item_Key;
15
16 FUNCTION Check_Event(p_event_name IN VARCHAR2) RETURN VARCHAR2
17 -----------------------------------------------
18 -- Return event name if the entered event exist
19 -- Otherwise return NOTFOUND
20 -----------------------------------------------
21 IS
22 CURSOR c_event_name IS
23 SELECT name
24 FROM wf_events
25 WHERE name = p_event_name;
26 RetEvent VARCHAR2(240);
27 BEGIN
28 OPEN c_event_name;
29 FETCH c_event_name INTO RetEvent;
30 IF c_event_name%NOTFOUND THEN
31 RetEvent := 'NOTFOUND';
32 END IF;
33 CLOSE c_event_name;
34 RETURN RetEvent;
35 END Check_Event;
36
37 PROCEDURE AddParamEnvToList
38 ------------------------------------------------------
39 -- Add Application-Context parameter to the enter list
40 ------------------------------------------------------
41 ( x_list IN OUT NOCOPY WF_PARAMETER_LIST_T,
42 p_user_id IN VARCHAR2 DEFAULT NULL,
43 p_resp_id IN VARCHAR2 DEFAULT NULL,
44 p_resp_appl_id IN VARCHAR2 DEFAULT NULL,
45 p_security_group_id IN VARCHAR2 DEFAULT NULL,
46 p_org_id IN VARCHAR2 DEFAULT NULL)
47 IS
48 l_user_id VARCHAR2(255) := p_user_id;
49 l_resp_appl_id VARCHAR2(255) := p_resp_appl_id;
50 l_resp_id VARCHAR2(255) := p_resp_id;
51 l_security_group_id VARCHAR2(255) := p_security_group_id;
52 l_org_id VARCHAR2(255) := p_org_id;
53 l_param WF_PARAMETER_T;
54 l_rang NUMBER;
55 BEGIN
56 l_rang := 0;
57
58 IF l_user_id IS NULL THEN
59 l_user_id := fnd_profile.value( 'USER_ID');
60 END IF;
61
62 l_param := WF_PARAMETER_T( NULL, NULL );
63 -- fill the parameters list
64 x_list.extend;
65 l_param.SetName( 'USER_ID' );
66 l_param.SetValue( l_user_id);
67 l_rang := l_rang + 1;
68 x_list(l_rang) := l_param;
69
70 IF l_resp_id IS NULL THEN
71 l_resp_id := fnd_profile.value( 'RESP_ID');
72 END IF;
73
74 l_param := WF_PARAMETER_T( NULL, NULL );
75 -- fill the parameters list
76 x_list.extend;
77 l_param.SetName( 'RESP_ID' );
78 l_param.SetValue( l_resp_id );
79 l_rang := l_rang + 1;
80 x_list(l_rang) := l_param;
81
82 IF l_resp_appl_id IS NULL THEN
83 l_resp_appl_id := fnd_profile.value( 'RESP_APPL_ID');
84 END IF;
85
86 l_param := WF_PARAMETER_T( NULL, NULL );
87 -- fill the parameters list
88 x_list.extend;
89 l_param.SetName( 'RESP_APPL_ID' );
90 l_param.SetValue( l_resp_appl_id );
91 l_rang := l_rang + 1;
92 x_list(l_rang) := l_param;
93
94 IF l_security_group_id IS NULL THEN
95 l_security_group_id := fnd_profile.value( 'SECURITY_GROUP_ID');
96 END IF;
97 l_param := WF_PARAMETER_T( NULL, NULL );
98 -- fill the parameters list
99 x_list.extend;
100 l_param.SetName( 'SECURITY_GROUP_ID' );
101 l_param.SetValue( l_security_group_id );
102 l_rang := l_rang + 1;
103 x_list(l_rang) := l_param;
104
105 IF l_org_id IS NULL THEN
106 l_org_id := fnd_profile.value( 'ORG_ID');
107 END IF;
108
109 l_param := WF_PARAMETER_T( NULL, NULL );
110 -- fill the parameters list
111 x_list.extend;
112 l_param.SetName( 'ORG_ID' );
113 l_param.SetValue(l_org_id );
114 l_rang := l_rang + 1;
115 x_list(l_rang) := l_param;
116
117 END AddParamEnvToList;
118
119 PROCEDURE Raise_Event
120 ----------------------------------------------
121 -- Check if Event exist
122 -- Get the item_key
123 -- Raise event
124 ----------------------------------------------
125 (p_event_name IN VARCHAR2,
126 p_event_key IN VARCHAR2,
127 p_data IN CLOB DEFAULT NULL,
128 p_parameters IN wf_parameter_list_t DEFAULT NULL)
129 IS
130 l_item_key VARCHAR2(240);
131 l_event VARCHAR2(240);
132 EventNotFound EXCEPTION;
133 EventNotPV EXCEPTION;
134 BEGIN
135
136 SAVEPOINT pv_raise_event;
137
138 -- IF SUBSTR(l_event,1,15) <> 'oracle.apps.pv.' THEN
139 -- RAISE EventNotPV;
140 -- END IF;
141
142 l_event := Check_Event(p_event_name);
143
144 IF l_event = 'NOTFOUND' THEN
145 RAISE EventNotFound;
146 END IF;
147
148 Wf_Event.Raise
149 ( p_event_name => l_event,
150 p_event_key => p_event_key,
151 p_parameters => p_parameters,
152 p_event_data => p_data);
153
154 EXCEPTION
155 WHEN EventNotFound THEN
156 FND_MESSAGE.SET_NAME( 'PV', 'PV_DEBUG_MESSAGE');
157 FND_MESSAGE.SET_TOKEN( 'TEXT',p_event_name || ' Event not found' );
158 FND_MSG_PUB.ADD;
159
160 WHEN EventNotPV THEN
161 FND_MESSAGE.SET_NAME( 'PV', 'PV_DEBUG_MESSAGE');
162 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name || ' is not a PRM event' );
163 FND_MSG_PUB.ADD;
164
165 WHEN OTHERS THEN
166 ROLLBACK TO pv_raise_event;
167
168 FND_MESSAGE.SET_NAME( 'PV', 'PV_API_OTHERS_EXCEP' );
169 FND_MESSAGE.SET_TOKEN( 'ERROR',SQLERRM );
170 FND_MSG_PUB.ADD;
171
172 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
173
174 END Raise_Event;
175
176
177 END pvx_event_pkg;