[Home] [Help]
PACKAGE BODY: APPS.AR_CMGT_EVENT_PKG
Source
1 PACKAGE BODY ar_cmgt_event_pkg AS
2 /*$Header: ARCMBEVB.pls 115.4 2002/10/30 22:25:27 apandit noship $ */
3
4 FUNCTION exist_subscription(p_event_name IN VARCHAR2) RETURN VARCHAR2
5 IS
6 CURSOR cu0 IS
7 SELECT 'Y'
8 FROM wf_events eve,
9 wf_event_subscriptions sub
10 WHERE eve.name = p_event_name
11 AND eve.status = 'ENABLED'
12 AND eve.guid = sub.event_filter_guid
13 AND sub.status = 'ENABLED'
14 AND sub.source_type = 'LOCAL';
15 l_yn VARCHAR2(1);
16 BEGIN
17 OPEN cu0;
18 FETCH cu0 INTO l_yn;
19 IF cu0%NOTFOUND THEN
20 l_yn := 'N';
21 END IF;
22 CLOSE cu0;
23 RETURN l_yn;
24 END;
25
26 FUNCTION item_key(p_event_name IN VARCHAR2,
27 p_unique_identifier NUMBER) RETURN VARCHAR2
28 IS
29 RetKey VARCHAR2(240);
30 BEGIN
31 RetKey := p_event_name||'_'||to_char(p_unique_identifier)||'_'||to_char(sysdate,'DD-MON-YYYY HH24:MI:SS');
32 Return RetKey;
33 END item_key;
34
35
36 FUNCTION event(p_event_name IN VARCHAR2) RETURN VARCHAR2
37 -----------------------------------------------
38 -- Return event name if the entered event exist
39 -- Otherwise return NOTFOUND
40 -----------------------------------------------
41 IS
42 RetEvent VARCHAR2(240);
43 CURSOR get_event IS
44 SELECT name
45 FROM wf_events
46 WHERE name = p_event_name;
47 BEGIN
48 OPEN get_event;
49
50 FETCH get_event INTO RetEvent;
51 IF get_event%NOTFOUND THEN
52 RetEvent := 'NOTFOUND';
53 END IF;
54 CLOSE get_event;
55
56 RETURN RetEvent;
57 END event;
58
59 /*
60 FUNCTION org_id RETURN NUMBER
61 --------------------------------------------
62 -- Return the org_id for the current session
63 --------------------------------------------
64 IS
65 res NUMBER;
66 BEGIN
67 IF SUBSTRB( USERENV('CLIENT_INFO'),1,1) <> ' ' THEN
68 res := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'),1,10));
69 ELSE
70 res := NULL;
71 END IF;
72 RETURN res;
73 END;
74 */
75
76 PROCEDURE AddParamEnvToList
77 ------------------------------------------------------
78 -- Add Application-Context parameter to the enter list
79 ------------------------------------------------------
80 ( x_list IN OUT NOCOPY WF_PARAMETER_LIST_T,
81 p_user_id IN VARCHAR2 DEFAULT NULL,
82 p_resp_id IN VARCHAR2 DEFAULT NULL,
83 p_resp_appl_id IN VARCHAR2 DEFAULT NULL,
84 p_security_group_id IN VARCHAR2 DEFAULT NULL,
85 p_org_id IN VARCHAR2 DEFAULT NULL)
86 IS
87 l_user_id VARCHAR2(255) := p_user_id;
88 l_resp_appl_id VARCHAR2(255) := p_resp_appl_id;
89 l_resp_id VARCHAR2(255) := p_resp_id;
90 l_security_group_id VARCHAR2(255) := p_security_group_id;
91 l_org_id VARCHAR2(255) := p_org_id;
92 l_param WF_PARAMETER_T;
93 l_rang NUMBER;
94 BEGIN
95 l_rang := 0;
96
97 IF l_user_id IS NULL THEN
98 l_user_id := fnd_profile.value( 'USER_ID');
99 END IF;
100
101 l_param := WF_PARAMETER_T( NULL, NULL );
102 -- fill the parameters list
103 x_list.extend;
104 l_param.SetName( 'USER_ID' );
105 l_param.SetValue( l_user_id);
106 l_rang := l_rang + 1;
107 x_list(l_rang) := l_param;
108
109 IF l_resp_id IS NULL THEN
110 l_resp_id := fnd_profile.value( 'RESP_ID');
111 END IF;
112
113 l_param := WF_PARAMETER_T( NULL, NULL );
114 -- fill the parameters list
115 x_list.extend;
116 l_param.SetName( 'RESP_ID' );
117 l_param.SetValue( l_resp_id );
118 l_rang := l_rang + 1;
119 x_list(l_rang) := l_param;
120
121 IF l_resp_appl_id IS NULL THEN
122 l_resp_appl_id := fnd_profile.value( 'RESP_APPL_ID');
123 END IF;
124
125 l_param := WF_PARAMETER_T( NULL, NULL );
126 -- fill the parameters list
127 x_list.extend;
128 l_param.SetName( 'RESP_APPL_ID' );
129 l_param.SetValue( l_resp_appl_id );
130 l_rang := l_rang + 1;
131 x_list(l_rang) := l_param;
132
133 IF l_security_group_id IS NULL THEN
134 l_security_group_id := fnd_profile.value( 'SECURITY_GROUP_ID');
135 END IF;
136 l_param := WF_PARAMETER_T( NULL, NULL );
137 -- fill the parameters list
138 x_list.extend;
139 l_param.SetName( 'SECURITY_GROUP_ID' );
140 l_param.SetValue( l_security_group_id );
141 l_rang := l_rang + 1;
142 x_list(l_rang) := l_param;
143
144 IF l_org_id IS NULL THEN
145 l_org_id := fnd_profile.value( 'ORG_ID');
146 END IF;
147
148 l_param := WF_PARAMETER_T( NULL, NULL );
149 -- fill the parameters list
150 x_list.extend;
151 l_param.SetName( 'ORG_ID' );
152 l_param.SetValue(l_org_id );
153 l_rang := l_rang + 1;
154 x_list(l_rang) := l_param;
155
156 END;
157
158
159 PROCEDURE raise_event
160 (p_event_name IN VARCHAR2,
161 p_event_key IN VARCHAR2,
162 p_data IN CLOB DEFAULT NULL,
163 p_parameters IN wf_parameter_list_t DEFAULT NULL)
164 IS
165 l_item_key VARCHAR2(240);
166 l_event VARCHAR2(240);
167 EventNotFound EXCEPTION;
168 EventNotARCMGT EXCEPTION;
169 BEGIN
170
171 SAVEPOINT ar_cmgt_raise_event;
172
173 l_event := event(p_event_name);
174
175 IF l_event = 'NOTFOUND' THEN
176 RAISE EventNotFound;
177 END IF;
178
179 IF SUBSTRB(l_event,1,15) <> 'oracle.apps.ar.' THEN
180 RAISE EventNotARCMGT;
181 END IF;
182
183 Wf_Event.Raise
184 ( p_event_name => l_event,
185 p_event_key => p_event_key,
186 p_parameters => p_parameters,
187 p_event_data => p_data);
188
189
190 EXCEPTION
191 WHEN EventNotFound THEN
192
193 FND_MESSAGE.SET_NAME( 'AR', 'AR_EVENTNOTFOUND');
194 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
195 app_exception.raise_exception;
196
197 WHEN EventNotARCMGT THEN
198 FND_MESSAGE.SET_NAME( 'AR', 'AR_EVENTNOTAR');
199 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
200 app_exception.raise_exception;
201
202 WHEN NO_DATA_FOUND THEN
203 ROLLBACK TO ar_cmgt_raise_event;
204
205 FND_MESSAGE.SET_NAME( 'AR', 'GENERIC_MESSAGE' );
206 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
207 app_exception.raise_exception;
208
209
210 WHEN OTHERS THEN
211 ROLLBACK TO ar_cmgt_raise_event;
212
213 FND_MESSAGE.SET_NAME( 'AR', 'GENERIC_MESSAGE' );
214 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
215 app_exception.raise_exception;
216
217
218
219 END raise_event;
220
221
222 END;