[Home] [Help]
PACKAGE BODY: APPS.FND_SEARCH_EVENT
Source
1 package body FND_SEARCH_EVENT as
2 -- $Header: FNDCLGEHB.pls 120.1.12010000.1 2008/07/25 14:24:28 appldev ship $
3
4 FUNCTION Start_Crawl(obj_name in varchar2) return VARCHAR2
5 IS
6 BEGIN
7 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
8 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.START_CRAWL',
9 'Begin Start_Crawl to initialize crawl status in change log');
10 end if;
11 UPDATE FND_SEARCHABLE_CHANGE_LOG
12 set CRAWL_STATUS='Y'
13 where object_name=obj_name;
14
15 if (sql%rowcount=0) then
16 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
17 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.START_CRAWL',
18 'Change Log is empty for this object');
19 end if;
20 return 'ERROR';
21 else
22 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
23 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.START_CRAWL',
24 'End Start_Crawl');
25 end if;
26 return 'SUCCESS';
27 end if;
28 END Start_Crawl;
29
30 FUNCTION End_Crawl(obj_name in varchar2,change_type in varchar2) return VARCHAR2
31 IS
32 BEGIN
33 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
34 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.END_CRAWL',
35 'Begin End_Crawl to remove crawled entries from the change log');
36 end if;
37 if (change_type='EVENT') then
38 DELETE FROM FND_SEARCHABLE_CHANGE_LOG
39 WHERE OBJECT_NAME=obj_name
40 AND CHANGE_TYPE IN ('INSERT','UPDATE')
41 AND CRAWL_STATUS='Y';
42 elsif (change_Type ='DELETE') then
43 DELETE FROM FND_SEARCHABLE_CHANGE_LOG
44 WHERE OBJECT_NAME=obj_name
45 AND CHANGE_TYPE ='DELETE'
46 AND CRAWL_STATUS='Y';
47 elsif (change_Type='ERROR') then
48 DELETE FROM FND_SEARCHABLE_CHANGE_LOG
49 WHERE OBJECT_NAME=obj_name
50 AND CHANGE_TYPE ='ERROR'
51 AND CRAWL_STATUS='Y';
52 end if;
53
54 if (sql%rowcount=0) then
55 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
56 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.END_CRAWL',
57 'Change log is empty for this object');
58 end if;
59 return 'ERROR';
60 else
61 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
62 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.END_CRAWL',
63 'End End_Crawl ');
64 end if;
65
66 return 'SUCCESS';
67 end if;
68
69 END End_Crawl;
70
71 FUNCTION Reset_Crawl(obj_name in varchar2,change_type in varchar2) return VARCHAR2
72 IS
73 BEGIN
74 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
75 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.END_CRAWL',
76 'Begin Reset_Crawl to reset entries that errored out during crawl');
77 end if;
78 if (change_type='EVENT') then
79 UPDATE FND_SEARCHABLE_CHANGE_LOG
80 SET CRAWL_STATUS=NULL
81 WHERE OBJECT_NAME=obj_name
82 AND CHANGE_TYPE IN ('INSERT','UPDATE')
83 AND CRAWL_STATUS='Y';
84 elsif (change_Type ='DELETE') then
85 UPDATE FND_SEARCHABLE_CHANGE_LOG
86 SET CRAWL_STATUS=NULL
87 WHERE OBJECT_NAME=obj_name
88 AND CHANGE_TYPE ='DELETE'
89 AND CRAWL_STATUS='Y';
90 elsif (change_Type='ERROR') then
91 UPDATE FND_SEARCHABLE_CHANGE_LOG
92 SET CRAWL_STATUS=NULL
93 WHERE OBJECT_NAME=obj_name
94 AND CHANGE_TYPE ='ERROR'
95 AND CRAWL_STATUS='Y';
96 end if;
97
98 if (sql%rowcount=0) then
99 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
100 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.RESET_CRAWL',
101 'Change log is empty for this object');
102 end if;
103 return 'ERROR';
104 else
105 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
106 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.RESET_CRAWL',
107 'End Reset_Crawl ');
108 end if;
109
110 return 'SUCCESS';
111 end if;
112
113 END Reset_Crawl;
114
115
116 FUNCTION On_Object_Change(p_subscription_guid in raw,
117 p_event in out NOCOPY WF_EVENT_T) return VARCHAR2
118 IS
119 object_name varchar2(256);
120 change_type varchar2(64);
121 id_type varchar2(64);
122 row_id_from varchar2(2000);
123 row_id_to varchar2(2000);
124 pk_name_1 varchar2(64);
125 pk_value_1 varchar2(64);
126 pk_name_2 varchar2(64);
127 pk_value_2 varchar2(64);
128 pk_name_3 varchar2(64);
129 pk_value_3 varchar2(64);
130 pk_name_4 varchar2(64);
131 pk_value_4 varchar2(64);
132 pk_name_5 varchar2(64);
133 pk_value_5 varchar2(64);
134 status varchar2(1);
135 feed_url varchar2(4000);
136
137 BEGIN
138 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
139 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.ON_OBJECT_CHANGE',
140 'Begin On_Object_Change');
141 end if;
142 object_name := p_event.GetValueForParameter('OBJECT_NAME');
143 change_type := p_event.GetValueForParameter('CHANGE_TYPE');
144 id_type := p_event.GetValueForParameter('ID_TYPE');
145 row_id_from := p_event.GetValueForParameter('ROW_ID_FROM');
146 row_id_to := p_event.GetValueForParameter('ROW_ID_TO');
147 pk_name_1 := p_event.GetValueForParameter('PK_NAME_1');
148 pk_value_1 := p_event.GetValueForParameter('PK_VALUE_1');
149 pk_name_2 := p_event.GetValueForParameter('PK_NAME_2');
150 pk_value_2 := p_event.GetValueForParameter('PK_VALUE_2');
151 pk_name_3 := p_event.GetValueForParameter('PK_NAME_3');
152 pk_value_3 :=p_event.GetValueForParameter('PK_VALUE_3');
153 pk_name_4 := p_event.GetValueForParameter('PK_NAME_4');
154 pk_value_4 := p_event.GetValueForParameter('PK_VALUE_4');
155 pk_name_5 := p_event.GetValueForParameter('PK_NAME_5');
156 pk_value_5 := p_event.GetValueForParameter('PK_VALUE_5');
157 status := p_event.GetValueForParameter('CRAWL_STATUS');
158 feed_url := p_event.GetValueForParameter('DATA_FEED_URL');
159
160 insert into fnd_searchable_change_log
161 (
162 EVENT_INSTANCE_ID,
163 OBJECT_NAME,
164 CHANGE_TYPE,
165 ID_TYPE,
166 ROW_FROM,
167 ROW_TO,
168 PK_NAME_1,
169 PK_VALUE_1,
170 PK_NAME_2,
171 PK_VALUE_2,
172 PK_NAME_3,
173 PK_VALUE_3,
174 PK_NAME_4,
175 PK_VALUE_4,
176 PK_NAME_5,
177 PK_VALUE_5,
178 CHANGE_DATE,
179 CRAWL_STATUS,
180 DATA_FEED_URL
181 )values
182 (
183 FND_SEARCH_EVENTS_SEQ.nextVal,
184 object_name,
185 change_type ,
186 id_type,
187 row_id_from,
188 row_id_to ,
189 pk_name_1 ,
190 pk_value_1,
191 pk_name_2 ,
192 pk_value_2 ,
193 pk_name_3,
194 pk_value_3,
195 pk_name_4 ,
196 pk_value_4 ,
197 pk_name_5 ,
198 pk_value_5 ,
199 Sysdate,
200 status,
201 feed_url
202 );
203 if (fnd_log.LEVEL_STATEMENT >= fnd_log.g_current_runtime_level) then
204 fnd_log.string(FND_LOG.LEVEL_STATEMENT, 'FND_SEARCH_EVENT.ON_OBJECT_CHANGE',
205 'End On_Object_Change');
206 end if;
207 return 'SUCCESS';
208 exception
209 when others then
210 WF_CORE.CONTEXT('FND_SEARCH_EVENTS', 'On_Object_Change',
211 p_event.getEventName( ), p_subscription_guid);
212 WF_EVENT.setErrorInfo(p_event, 'ERROR');
213 return 'ERROR';
214 END On_Object_Change;
215
216
217 end FND_SEARCH_EVENT;