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