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