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