[Home] [Help]
PACKAGE BODY: APPS.AR_CMGT_EVENT_PKG
Source
1 PACKAGE BODY ar_cmgt_event_pkg AS
2 /*$Header: ARCMBEVB.pls 120.0.12010000.2 2009/12/28 21:33:47 mraymond ship $ */
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 /* 9216062 - Use correct profile option name! */
134 IF l_security_group_id IS NULL THEN
135 l_security_group_id := fnd_profile.value('XLA_MO_SECURITY_PROFILE_LEVEL');
136 END IF;
137 l_param := WF_PARAMETER_T( NULL, NULL );
138 -- fill the parameters list
139 x_list.extend;
140 l_param.SetName( 'SECURITY_GROUP_ID' );
141 l_param.SetValue( l_security_group_id );
142 l_rang := l_rang + 1;
143 x_list(l_rang) := l_param;
144
145 IF l_org_id IS NULL THEN
146 l_org_id := fnd_profile.value( 'ORG_ID');
147 END IF;
148
149 l_param := WF_PARAMETER_T( NULL, NULL );
150 -- fill the parameters list
151 x_list.extend;
152 l_param.SetName( 'ORG_ID' );
153 l_param.SetValue(l_org_id );
154 l_rang := l_rang + 1;
155 x_list(l_rang) := l_param;
156
157 END;
158
159
160 PROCEDURE raise_event
161 (p_event_name IN VARCHAR2,
162 p_event_key IN VARCHAR2,
163 p_data IN CLOB DEFAULT NULL,
164 p_parameters IN wf_parameter_list_t DEFAULT NULL)
165 IS
166 l_item_key VARCHAR2(240);
167 l_event VARCHAR2(240);
168 EventNotFound EXCEPTION;
169 EventNotARCMGT EXCEPTION;
170 BEGIN
171
172 SAVEPOINT ar_cmgt_raise_event;
173
174 l_event := event(p_event_name);
175
176 IF l_event = 'NOTFOUND' THEN
177 RAISE EventNotFound;
178 END IF;
179
180 IF SUBSTRB(l_event,1,15) <> 'oracle.apps.ar.' THEN
181 RAISE EventNotARCMGT;
182 END IF;
183
184 Wf_Event.Raise
185 ( p_event_name => l_event,
186 p_event_key => p_event_key,
187 p_parameters => p_parameters,
188 p_event_data => p_data);
189
190
191 EXCEPTION
192 WHEN EventNotFound THEN
193
194 FND_MESSAGE.SET_NAME( 'AR', 'AR_EVENTNOTFOUND');
195 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
196 app_exception.raise_exception;
197
198 WHEN EventNotARCMGT THEN
199 FND_MESSAGE.SET_NAME( 'AR', 'AR_EVENTNOTAR');
200 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
201 app_exception.raise_exception;
202
203 WHEN NO_DATA_FOUND THEN
204 ROLLBACK TO ar_cmgt_raise_event;
205
206 FND_MESSAGE.SET_NAME( 'AR', 'GENERIC_MESSAGE' );
207 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
208 app_exception.raise_exception;
209
210
211 WHEN OTHERS THEN
212 ROLLBACK TO ar_cmgt_raise_event;
213
214 FND_MESSAGE.SET_NAME( 'AR', 'GENERIC_MESSAGE' );
215 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
216 app_exception.raise_exception;
217
218
219
220 END raise_event;
221
222
223 END;