[Home] [Help]
PACKAGE BODY: APPS.HZ_PARTY_SEARCH
Source
1 PACKAGE BODY HZ_PARTY_SEARCH AS
2 /*=======================================================================+
3 | Copyright (c) 1999 Oracle Corporation Redwood Shores, California, USA|
4 | All rights reserved. |
5 +=======================================================================+
6 | NAME
7 | HZ_PARTY_SEARCH
8 |
9 | DESCRIPTION
10 |
11 | Compiled by the HZ Match Rule Compiler
12 | PUBLIC PROCEDURES
13 | find_parties
14 | get_matching_party_sites
15 | get_matching_contacts
16 | get_matching_contact_points
17 | get_party_score_details
18 |
19 | HISTORY
20 | 30-MAR-2009 Generated by HZ Match Rule Compiler
21 |
22 *=======================================================================*/
23 g_debug_count NUMBER := 0;
24 g_last_rule NUMBER := -1;
25 g_last_rule_valid BOOLEAN := FALSE;
26 PROCEDURE find_parties (
27 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
28 x_rule_id IN OUT NUMBER,
29 p_party_search_rec IN party_search_rec_type,
30 p_party_site_list IN party_site_list,
31 p_contact_list IN contact_list,
32 p_contact_point_list IN contact_point_list,
33 p_restrict_sql IN VARCHAR2,
34 p_search_merged IN VARCHAR2,
35 x_search_ctx_id IN OUT NUMBER,
36 x_num_matches IN OUT NUMBER,
37 x_return_status OUT VARCHAR2,
38 x_msg_count OUT NUMBER,
39 x_msg_data OUT VARCHAR2
40 ) IS
41 BEGIN
42 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
43 hz_utility_v2pub.debug(p_message=>'find_parties-1(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
44 END IF;
45 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
46 hz_utility_v2pub.debug(p_message=>'Rule ID '||x_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
47 END IF;
48 find_parties(p_init_msg_list,x_rule_id,p_party_search_rec,
49 p_party_site_list,p_contact_list,p_contact_point_list,
50 p_restrict_sql,NULL,p_search_merged,x_search_ctx_id,
51 x_num_matches,x_return_status,x_msg_count,x_msg_data);
52 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
53 hz_utility_v2pub.debug(p_message=>'find_parties-1(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
54 END IF;
55 END;
56
57 PROCEDURE find_parties (
58 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
59 p_rule_id IN NUMBER,
60 p_party_search_rec IN party_search_rec_type,
61 p_party_site_list IN party_site_list,
62 p_contact_list IN contact_list,
63 p_contact_point_list IN contact_point_list,
64 p_restrict_sql IN VARCHAR2,
65 p_match_type IN VARCHAR2,
66 p_search_merged IN VARCHAR2,
67 x_search_ctx_id OUT NUMBER,
68 x_num_matches OUT NUMBER,
69 x_return_status OUT VARCHAR2,
70 x_msg_count OUT NUMBER,
71 x_msg_data OUT VARCHAR2
72 ) IS
73 CURSOR c_match_rule IS
74 SELECT COMPILATION_FLAG
75 FROM HZ_MATCH_RULES_VL
76 WHERE MATCH_RULE_ID = p_rule_id;
77 l_cmp_flag VARCHAR2(1);
78 BEGIN
79
80 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
81 hz_utility_v2pub.debug(p_message=>'find_parties(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
82 END IF;
83 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
84 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
85 END IF;
86 -- Initialize return status and message stack
87 x_return_status := FND_API.G_RET_STS_SUCCESS;
88 IF FND_API.to_Boolean(p_init_msg_list) THEN
89 FND_MSG_PUB.initialize;
90 END IF;
91
92 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
93 -- Find the match rule
94 null;
95
96 -- No MATCH RULE FOUND
97 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
98 FND_MSG_PUB.ADD;
99 RAISE FND_API.G_EXC_ERROR;
100 END IF;
101 OPEN c_match_rule;
102 FETCH c_match_rule INTO l_cmp_flag;
103 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
104 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
105 FND_MSG_PUB.ADD;
106 RAISE FND_API.G_EXC_ERROR;
107 END IF;
108 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
109 IF p_rule_id=2 THEN
110 IF NOT HZ_MATCH_RULE_2.check_staged THEN
111 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
112 FND_MSG_PUB.ADD;
113 RAISE FND_API.G_EXC_ERROR;
114 END IF;
115 HZ_MATCH_RULE_2.find_parties(
116 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
117 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
118 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
119 ELSIF p_rule_id=3 THEN
120 IF NOT HZ_MATCH_RULE_3.check_staged THEN
121 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
122 FND_MSG_PUB.ADD;
123 RAISE FND_API.G_EXC_ERROR;
124 END IF;
125 HZ_MATCH_RULE_3.find_parties(
126 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
127 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
128 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
129 ELSIF p_rule_id=4 THEN
130 IF NOT HZ_MATCH_RULE_4.check_staged THEN
131 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
132 FND_MSG_PUB.ADD;
133 RAISE FND_API.G_EXC_ERROR;
134 END IF;
135 HZ_MATCH_RULE_4.find_parties(
136 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
137 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
138 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
139 ELSIF p_rule_id=5 THEN
140 IF NOT HZ_MATCH_RULE_5.check_staged THEN
141 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
142 FND_MSG_PUB.ADD;
143 RAISE FND_API.G_EXC_ERROR;
144 END IF;
145 HZ_MATCH_RULE_5.find_parties(
146 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
147 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
148 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
149 ELSIF p_rule_id=6 THEN
150 IF NOT HZ_MATCH_RULE_6.check_staged THEN
151 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
152 FND_MSG_PUB.ADD;
153 RAISE FND_API.G_EXC_ERROR;
154 END IF;
155 HZ_MATCH_RULE_6.find_parties(
156 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
157 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
158 -- Code for Match rule SAMPLE: SIMILAR_PERSON
159 ELSIF p_rule_id=7 THEN
160 IF NOT HZ_MATCH_RULE_7.check_staged THEN
161 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
162 FND_MSG_PUB.ADD;
163 RAISE FND_API.G_EXC_ERROR;
164 END IF;
165 HZ_MATCH_RULE_7.find_parties(
166 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
167 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
168 -- Code for Match rule SAMPLE: SEARCH
169 ELSIF p_rule_id=8 THEN
170 IF NOT HZ_MATCH_RULE_8.check_staged THEN
171 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
172 FND_MSG_PUB.ADD;
173 RAISE FND_API.G_EXC_ERROR;
174 END IF;
175 HZ_MATCH_RULE_8.find_parties(
176 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
177 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
178 -- Code for Match rule RM SEARCH RULE
179 ELSIF p_rule_id=32 THEN
180 IF NOT HZ_MATCH_RULE_32.check_staged THEN
181 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
182 FND_MSG_PUB.ADD;
183 RAISE FND_API.G_EXC_ERROR;
184 END IF;
185 HZ_MATCH_RULE_32.find_parties(
186 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
187 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
188 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
189 ELSIF p_rule_id=33 THEN
190 IF NOT HZ_MATCH_RULE_33.check_staged THEN
191 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
192 FND_MSG_PUB.ADD;
193 RAISE FND_API.G_EXC_ERROR;
194 END IF;
195 HZ_MATCH_RULE_33.find_parties(
196 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
197 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
198 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
199 ELSIF p_rule_id=34 THEN
200 IF NOT HZ_MATCH_RULE_34.check_staged THEN
201 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
202 FND_MSG_PUB.ADD;
203 RAISE FND_API.G_EXC_ERROR;
204 END IF;
205 HZ_MATCH_RULE_34.find_parties(
206 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
207 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
208 -- Code for Match rule DL SMART SEARCH
209 ELSIF p_rule_id=35 THEN
210 IF NOT HZ_MATCH_RULE_35.check_staged THEN
211 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
212 FND_MSG_PUB.ADD;
213 RAISE FND_API.G_EXC_ERROR;
214 END IF;
215 HZ_MATCH_RULE_35.find_parties(
216 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
217 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
218 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
219 ELSIF p_rule_id=36 THEN
220 IF NOT HZ_MATCH_RULE_36.check_staged THEN
221 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
222 FND_MSG_PUB.ADD;
223 RAISE FND_API.G_EXC_ERROR;
224 END IF;
225 HZ_MATCH_RULE_36.find_parties(
226 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
227 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
228 -- Code for Match rule DL ADDRESS DEFAULT
229 ELSIF p_rule_id=37 THEN
230 IF NOT HZ_MATCH_RULE_37.check_staged THEN
231 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
232 FND_MSG_PUB.ADD;
233 RAISE FND_API.G_EXC_ERROR;
234 END IF;
235 HZ_MATCH_RULE_37.find_parties(
236 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
237 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
238 -- Code for Match rule DL RELATIONSHIP DEFAULT
239 ELSIF p_rule_id=38 THEN
240 IF NOT HZ_MATCH_RULE_38.check_staged THEN
241 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
242 FND_MSG_PUB.ADD;
243 RAISE FND_API.G_EXC_ERROR;
244 END IF;
245 HZ_MATCH_RULE_38.find_parties(
246 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
247 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
248 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
249 ELSIF p_rule_id=39 THEN
250 IF NOT HZ_MATCH_RULE_39.check_staged THEN
251 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
252 FND_MSG_PUB.ADD;
253 RAISE FND_API.G_EXC_ERROR;
254 END IF;
255 HZ_MATCH_RULE_39.find_parties(
256 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
257 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
258 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
259 ELSIF p_rule_id=40 THEN
260 IF NOT HZ_MATCH_RULE_40.check_staged THEN
261 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
262 FND_MSG_PUB.ADD;
263 RAISE FND_API.G_EXC_ERROR;
264 END IF;
265 HZ_MATCH_RULE_40.find_parties(
266 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
267 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
268 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
269 ELSIF p_rule_id=41 THEN
270 IF NOT HZ_MATCH_RULE_41.check_staged THEN
271 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
272 FND_MSG_PUB.ADD;
273 RAISE FND_API.G_EXC_ERROR;
274 END IF;
275 HZ_MATCH_RULE_41.find_parties(
276 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
277 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
278 -- Code for Match rule SAMPLE: SEARCH EXACT
279 ELSIF p_rule_id=42 THEN
280 IF NOT HZ_MATCH_RULE_42.check_staged THEN
281 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
282 FND_MSG_PUB.ADD;
283 RAISE FND_API.G_EXC_ERROR;
284 END IF;
285 HZ_MATCH_RULE_42.find_parties(
286 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
287 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
288 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
289 ELSIF p_rule_id=48 THEN
290 IF NOT HZ_MATCH_RULE_48.check_staged THEN
291 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
292 FND_MSG_PUB.ADD;
293 RAISE FND_API.G_EXC_ERROR;
294 END IF;
295 HZ_MATCH_RULE_48.find_parties(
296 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
297 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
298 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
299 ELSIF p_rule_id=50 THEN
300 IF NOT HZ_MATCH_RULE_50.check_staged THEN
301 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
302 FND_MSG_PUB.ADD;
303 RAISE FND_API.G_EXC_ERROR;
304 END IF;
305 HZ_MATCH_RULE_50.find_parties(
306 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
307 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
308 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
309 ELSIF p_rule_id=51 THEN
310 IF NOT HZ_MATCH_RULE_51.check_staged THEN
311 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
312 FND_MSG_PUB.ADD;
313 RAISE FND_API.G_EXC_ERROR;
314 END IF;
315 HZ_MATCH_RULE_51.find_parties(
316 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
317 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
318 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
319 ELSIF p_rule_id=52 THEN
320 IF NOT HZ_MATCH_RULE_52.check_staged THEN
321 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
322 FND_MSG_PUB.ADD;
323 RAISE FND_API.G_EXC_ERROR;
324 END IF;
325 HZ_MATCH_RULE_52.find_parties(
326 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
327 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
328 -- Code for Match rule CREDIT MANAGEMENT SEARCH
329 ELSIF p_rule_id=53 THEN
330 IF NOT HZ_MATCH_RULE_53.check_staged THEN
331 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
332 FND_MSG_PUB.ADD;
333 RAISE FND_API.G_EXC_ERROR;
334 END IF;
335 HZ_MATCH_RULE_53.find_parties(
336 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
337 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
338 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
339 ELSIF p_rule_id=58 THEN
340 IF NOT HZ_MATCH_RULE_58.check_staged THEN
341 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
342 FND_MSG_PUB.ADD;
343 RAISE FND_API.G_EXC_ERROR;
344 END IF;
345 HZ_MATCH_RULE_58.find_parties(
346 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
347 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
348 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
349 ELSIF p_rule_id=60 THEN
350 IF NOT HZ_MATCH_RULE_60.check_staged THEN
351 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
352 FND_MSG_PUB.ADD;
353 RAISE FND_API.G_EXC_ERROR;
354 END IF;
355 HZ_MATCH_RULE_60.find_parties(
356 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
357 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
358 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
359 ELSIF p_rule_id=61 THEN
360 IF NOT HZ_MATCH_RULE_61.check_staged THEN
361 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
362 FND_MSG_PUB.ADD;
363 RAISE FND_API.G_EXC_ERROR;
364 END IF;
365 HZ_MATCH_RULE_61.find_parties(
366 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
367 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
368 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
369 ELSIF p_rule_id=62 THEN
370 IF NOT HZ_MATCH_RULE_62.check_staged THEN
371 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
372 FND_MSG_PUB.ADD;
373 RAISE FND_API.G_EXC_ERROR;
374 END IF;
375 HZ_MATCH_RULE_62.find_parties(
376 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
377 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
378 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
379 ELSIF p_rule_id=98 THEN
380 IF NOT HZ_MATCH_RULE_98.check_staged THEN
381 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
382 FND_MSG_PUB.ADD;
383 RAISE FND_API.G_EXC_ERROR;
384 END IF;
385 HZ_MATCH_RULE_98.find_parties(
386 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
387 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
388 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
389 ELSIF p_rule_id=99 THEN
390 IF NOT HZ_MATCH_RULE_99.check_staged THEN
391 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
392 FND_MSG_PUB.ADD;
393 RAISE FND_API.G_EXC_ERROR;
394 END IF;
395 HZ_MATCH_RULE_99.find_parties(
396 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
397 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,NULL,NULL,NULL,'N',x_search_ctx_id,x_num_matches);
398 END IF;
399 -- User quality score
400 IF (fnd_profile.value('HZ_QUALITY_WEIGHTING_USER_HOOK') = 'Y') THEN
401 HZ_DQM_SEARCH_UTIL.get_quality_score ( x_search_ctx_id, p_rule_id);
402 END IF;
403 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
404 hz_utility_v2pub.debug(p_message=>'find_parties(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
405 END IF;
406 --Standard call to get message count and if count is 1, get message info
407 FND_MSG_PUB.Count_And_Get(
408 p_encoded => FND_API.G_FALSE,
409 p_count => x_msg_count,
410 p_data => x_msg_data);
411 EXCEPTION
412 WHEN FND_API.G_EXC_ERROR THEN
413 x_return_status := FND_API.G_RET_STS_ERROR;
414 FND_MSG_PUB.Count_And_Get(
415 p_encoded => FND_API.G_FALSE,
416 p_count => x_msg_count,
417 p_data => x_msg_data);
418 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
419 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
420 FND_MSG_PUB.Count_And_Get(
421 p_encoded => FND_API.G_FALSE,
422 p_count => x_msg_count,
423 p_data => x_msg_data);
424
425 WHEN OTHERS THEN
426 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
427 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
428 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
429 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
430 FND_MSG_PUB.ADD;
431
432 FND_MSG_PUB.Count_And_Get(
433 p_encoded => FND_API.G_FALSE,
434 p_count => x_msg_count,
435 p_data => x_msg_data);
436 END;
437
438 PROCEDURE find_persons (
439 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
440 p_rule_id IN NUMBER,
441 p_party_search_rec IN party_search_rec_type,
442 p_party_site_list IN party_site_list,
443 p_contact_list IN contact_list,
444 p_contact_point_list IN contact_point_list,
445 p_restrict_sql IN VARCHAR2,
446 p_match_type IN VARCHAR2,
447 p_search_merged IN VARCHAR2,
448 x_search_ctx_id OUT NUMBER,
449 x_num_matches OUT NUMBER,
450 x_return_status OUT VARCHAR2,
451 x_msg_count OUT NUMBER,
452 x_msg_data OUT VARCHAR2
453 ) IS
454 CURSOR c_match_rule IS
455 SELECT COMPILATION_FLAG
456 FROM HZ_MATCH_RULES_VL
457 WHERE MATCH_RULE_ID = p_rule_id;
458 l_cmp_flag VARCHAR2(1);
459 BEGIN
460
461 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
462 hz_utility_v2pub.debug(p_message=>'find_persons(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
463 END IF;
464 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
465 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
466 END IF;
467 -- Initialize return status and message stack
468 x_return_status := FND_API.G_RET_STS_SUCCESS;
469 IF FND_API.to_Boolean(p_init_msg_list) THEN
470 FND_MSG_PUB.initialize;
471 END IF;
472
473 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
474 -- Find the match rule
475 null;
476
477 -- No MATCH RULE FOUND
478 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
479 FND_MSG_PUB.ADD;
480 RAISE FND_API.G_EXC_ERROR;
481 END IF;
482 OPEN c_match_rule;
483 FETCH c_match_rule INTO l_cmp_flag;
484 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
485 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
486 FND_MSG_PUB.ADD;
487 RAISE FND_API.G_EXC_ERROR;
488 END IF;
489 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
490 IF p_rule_id=2 THEN
491 IF NOT HZ_MATCH_RULE_2.check_staged THEN
492 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
493 FND_MSG_PUB.ADD;
494 RAISE FND_API.G_EXC_ERROR;
495 END IF;
496 HZ_MATCH_RULE_2.find_persons(
497 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
498 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
499 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
500 ELSIF p_rule_id=3 THEN
501 IF NOT HZ_MATCH_RULE_3.check_staged THEN
502 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
503 FND_MSG_PUB.ADD;
504 RAISE FND_API.G_EXC_ERROR;
505 END IF;
506 HZ_MATCH_RULE_3.find_persons(
507 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
508 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
509 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
510 ELSIF p_rule_id=4 THEN
511 IF NOT HZ_MATCH_RULE_4.check_staged THEN
512 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
513 FND_MSG_PUB.ADD;
514 RAISE FND_API.G_EXC_ERROR;
515 END IF;
516 HZ_MATCH_RULE_4.find_persons(
517 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
518 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
519 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
520 ELSIF p_rule_id=5 THEN
521 IF NOT HZ_MATCH_RULE_5.check_staged THEN
522 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
523 FND_MSG_PUB.ADD;
524 RAISE FND_API.G_EXC_ERROR;
525 END IF;
526 HZ_MATCH_RULE_5.find_persons(
527 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
528 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
529 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
530 ELSIF p_rule_id=6 THEN
531 IF NOT HZ_MATCH_RULE_6.check_staged THEN
532 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
533 FND_MSG_PUB.ADD;
534 RAISE FND_API.G_EXC_ERROR;
535 END IF;
536 HZ_MATCH_RULE_6.find_persons(
537 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
538 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
539 -- Code for Match rule SAMPLE: SIMILAR_PERSON
540 ELSIF p_rule_id=7 THEN
541 IF NOT HZ_MATCH_RULE_7.check_staged THEN
542 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
543 FND_MSG_PUB.ADD;
544 RAISE FND_API.G_EXC_ERROR;
545 END IF;
546 HZ_MATCH_RULE_7.find_persons(
547 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
548 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
549 -- Code for Match rule SAMPLE: SEARCH
550 ELSIF p_rule_id=8 THEN
551 IF NOT HZ_MATCH_RULE_8.check_staged THEN
552 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
553 FND_MSG_PUB.ADD;
554 RAISE FND_API.G_EXC_ERROR;
555 END IF;
556 HZ_MATCH_RULE_8.find_persons(
557 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
558 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
559 -- Code for Match rule RM SEARCH RULE
560 ELSIF p_rule_id=32 THEN
561 IF NOT HZ_MATCH_RULE_32.check_staged THEN
562 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
563 FND_MSG_PUB.ADD;
564 RAISE FND_API.G_EXC_ERROR;
565 END IF;
566 HZ_MATCH_RULE_32.find_persons(
567 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
568 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
569 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
570 ELSIF p_rule_id=33 THEN
571 IF NOT HZ_MATCH_RULE_33.check_staged THEN
572 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
573 FND_MSG_PUB.ADD;
574 RAISE FND_API.G_EXC_ERROR;
575 END IF;
576 HZ_MATCH_RULE_33.find_persons(
577 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
578 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
579 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
580 ELSIF p_rule_id=34 THEN
581 IF NOT HZ_MATCH_RULE_34.check_staged THEN
582 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
583 FND_MSG_PUB.ADD;
584 RAISE FND_API.G_EXC_ERROR;
585 END IF;
586 HZ_MATCH_RULE_34.find_persons(
587 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
588 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
589 -- Code for Match rule DL SMART SEARCH
590 ELSIF p_rule_id=35 THEN
591 IF NOT HZ_MATCH_RULE_35.check_staged THEN
592 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
593 FND_MSG_PUB.ADD;
594 RAISE FND_API.G_EXC_ERROR;
595 END IF;
596 HZ_MATCH_RULE_35.find_persons(
597 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
598 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
599 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
600 ELSIF p_rule_id=36 THEN
601 IF NOT HZ_MATCH_RULE_36.check_staged THEN
602 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
603 FND_MSG_PUB.ADD;
604 RAISE FND_API.G_EXC_ERROR;
605 END IF;
606 HZ_MATCH_RULE_36.find_persons(
607 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
608 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
609 -- Code for Match rule DL ADDRESS DEFAULT
610 ELSIF p_rule_id=37 THEN
611 IF NOT HZ_MATCH_RULE_37.check_staged THEN
612 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
613 FND_MSG_PUB.ADD;
614 RAISE FND_API.G_EXC_ERROR;
615 END IF;
616 HZ_MATCH_RULE_37.find_persons(
617 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
618 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
619 -- Code for Match rule DL RELATIONSHIP DEFAULT
620 ELSIF p_rule_id=38 THEN
621 IF NOT HZ_MATCH_RULE_38.check_staged THEN
622 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
623 FND_MSG_PUB.ADD;
624 RAISE FND_API.G_EXC_ERROR;
625 END IF;
626 HZ_MATCH_RULE_38.find_persons(
627 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
628 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
629 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
630 ELSIF p_rule_id=39 THEN
631 IF NOT HZ_MATCH_RULE_39.check_staged THEN
632 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
633 FND_MSG_PUB.ADD;
634 RAISE FND_API.G_EXC_ERROR;
635 END IF;
636 HZ_MATCH_RULE_39.find_persons(
637 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
638 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
639 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
640 ELSIF p_rule_id=40 THEN
641 IF NOT HZ_MATCH_RULE_40.check_staged THEN
642 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
643 FND_MSG_PUB.ADD;
644 RAISE FND_API.G_EXC_ERROR;
645 END IF;
646 HZ_MATCH_RULE_40.find_persons(
647 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
648 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
649 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
650 ELSIF p_rule_id=41 THEN
651 IF NOT HZ_MATCH_RULE_41.check_staged THEN
652 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
653 FND_MSG_PUB.ADD;
654 RAISE FND_API.G_EXC_ERROR;
655 END IF;
656 HZ_MATCH_RULE_41.find_persons(
657 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
658 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
659 -- Code for Match rule SAMPLE: SEARCH EXACT
660 ELSIF p_rule_id=42 THEN
661 IF NOT HZ_MATCH_RULE_42.check_staged THEN
662 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
663 FND_MSG_PUB.ADD;
664 RAISE FND_API.G_EXC_ERROR;
665 END IF;
666 HZ_MATCH_RULE_42.find_persons(
667 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
668 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
669 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
670 ELSIF p_rule_id=48 THEN
671 IF NOT HZ_MATCH_RULE_48.check_staged THEN
672 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
673 FND_MSG_PUB.ADD;
674 RAISE FND_API.G_EXC_ERROR;
675 END IF;
676 HZ_MATCH_RULE_48.find_persons(
677 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
678 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
679 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
680 ELSIF p_rule_id=50 THEN
681 IF NOT HZ_MATCH_RULE_50.check_staged THEN
682 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
683 FND_MSG_PUB.ADD;
684 RAISE FND_API.G_EXC_ERROR;
685 END IF;
686 HZ_MATCH_RULE_50.find_persons(
687 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
688 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
689 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
690 ELSIF p_rule_id=51 THEN
691 IF NOT HZ_MATCH_RULE_51.check_staged THEN
692 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
693 FND_MSG_PUB.ADD;
694 RAISE FND_API.G_EXC_ERROR;
695 END IF;
696 HZ_MATCH_RULE_51.find_persons(
697 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
698 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
699 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
700 ELSIF p_rule_id=52 THEN
701 IF NOT HZ_MATCH_RULE_52.check_staged THEN
702 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
703 FND_MSG_PUB.ADD;
704 RAISE FND_API.G_EXC_ERROR;
705 END IF;
706 HZ_MATCH_RULE_52.find_persons(
707 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
708 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
709 -- Code for Match rule CREDIT MANAGEMENT SEARCH
710 ELSIF p_rule_id=53 THEN
711 IF NOT HZ_MATCH_RULE_53.check_staged THEN
712 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
713 FND_MSG_PUB.ADD;
714 RAISE FND_API.G_EXC_ERROR;
715 END IF;
716 HZ_MATCH_RULE_53.find_persons(
717 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
718 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
719 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
720 ELSIF p_rule_id=58 THEN
721 IF NOT HZ_MATCH_RULE_58.check_staged THEN
722 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
723 FND_MSG_PUB.ADD;
724 RAISE FND_API.G_EXC_ERROR;
725 END IF;
726 HZ_MATCH_RULE_58.find_persons(
727 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
728 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
729 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
730 ELSIF p_rule_id=60 THEN
731 IF NOT HZ_MATCH_RULE_60.check_staged THEN
732 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
733 FND_MSG_PUB.ADD;
734 RAISE FND_API.G_EXC_ERROR;
735 END IF;
736 HZ_MATCH_RULE_60.find_persons(
737 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
738 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
739 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
740 ELSIF p_rule_id=61 THEN
741 IF NOT HZ_MATCH_RULE_61.check_staged THEN
742 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
743 FND_MSG_PUB.ADD;
744 RAISE FND_API.G_EXC_ERROR;
745 END IF;
746 HZ_MATCH_RULE_61.find_persons(
747 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
748 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
749 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
750 ELSIF p_rule_id=62 THEN
751 IF NOT HZ_MATCH_RULE_62.check_staged THEN
752 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
753 FND_MSG_PUB.ADD;
754 RAISE FND_API.G_EXC_ERROR;
755 END IF;
756 HZ_MATCH_RULE_62.find_persons(
757 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
758 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
759 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
760 ELSIF p_rule_id=98 THEN
761 IF NOT HZ_MATCH_RULE_98.check_staged THEN
762 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
763 FND_MSG_PUB.ADD;
764 RAISE FND_API.G_EXC_ERROR;
765 END IF;
766 HZ_MATCH_RULE_98.find_persons(
767 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
768 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
769 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
770 ELSIF p_rule_id=99 THEN
771 IF NOT HZ_MATCH_RULE_99.check_staged THEN
772 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
773 FND_MSG_PUB.ADD;
774 RAISE FND_API.G_EXC_ERROR;
775 END IF;
776 HZ_MATCH_RULE_99.find_persons(
777 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
778 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,'N',x_search_ctx_id,x_num_matches);
779 END IF;
780 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
781 hz_utility_v2pub.debug(p_message=>'find_persons(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
782 END IF;
783 --Standard call to get message count and if count is 1, get message info
784 FND_MSG_PUB.Count_And_Get(
785 p_encoded => FND_API.G_FALSE,
786 p_count => x_msg_count,
787 p_data => x_msg_data);
788 EXCEPTION
789 WHEN FND_API.G_EXC_ERROR THEN
790 x_return_status := FND_API.G_RET_STS_ERROR;
791 FND_MSG_PUB.Count_And_Get(
792 p_encoded => FND_API.G_FALSE,
793 p_count => x_msg_count,
794 p_data => x_msg_data);
795 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
796 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
797 FND_MSG_PUB.Count_And_Get(
798 p_encoded => FND_API.G_FALSE,
799 p_count => x_msg_count,
800 p_data => x_msg_data);
801
802 WHEN OTHERS THEN
803 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
804 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
805 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
806 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
807 FND_MSG_PUB.ADD;
808
809 FND_MSG_PUB.Count_And_Get(
810 p_encoded => FND_API.G_FALSE,
811 p_count => x_msg_count,
812 p_data => x_msg_data);
813 END;
814
815 PROCEDURE find_persons (
816 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
817 p_rule_id IN NUMBER,
818 p_party_search_rec IN party_search_rec_type,
819 p_party_site_list IN party_site_list,
820 p_contact_list IN contact_list,
821 p_contact_point_list IN contact_point_list,
822 p_restrict_sql IN VARCHAR2,
823 p_match_type IN VARCHAR2,
824 x_search_ctx_id OUT NUMBER,
825 x_num_matches OUT NUMBER,
826 x_return_status OUT VARCHAR2,
827 x_msg_count OUT NUMBER,
828 x_msg_data OUT VARCHAR2
829 ) IS
830 BEGIN
831 find_persons (
832 p_init_msg_list,p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,p_contact_point_list,
833 p_restrict_sql ,p_match_type,NULL,x_search_ctx_id,x_num_matches,x_return_status,
834 x_msg_count,x_msg_data);
835 END;
836
837 PROCEDURE find_party_details (
838 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
839 p_rule_id IN NUMBER,
840 p_party_search_rec IN party_search_rec_type,
841 p_party_site_list IN party_site_list,
842 p_contact_list IN contact_list,
843 p_contact_point_list IN contact_point_list,
844 p_restrict_sql IN VARCHAR2,
845 p_match_type IN VARCHAR2,
846 p_search_merged IN VARCHAR2,
847 x_search_ctx_id OUT NUMBER,
848 x_num_matches OUT NUMBER,
849 x_return_status OUT VARCHAR2,
850 x_msg_count OUT NUMBER,
851 x_msg_data OUT VARCHAR2
852 ) IS
853 CURSOR c_match_rule IS
854 SELECT COMPILATION_FLAG
855 FROM HZ_MATCH_RULES_VL
856 WHERE MATCH_RULE_ID = p_rule_id;
857 l_cmp_flag VARCHAR2(1);
858 BEGIN
859 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
860 hz_utility_v2pub.debug(p_message=>'find_party_details(+)',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
861 END IF;
862 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
863 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
864 END IF;
865
866 -- Initialize return status and message stack
867 x_return_status := FND_API.G_RET_STS_SUCCESS;
868 IF FND_API.to_Boolean(p_init_msg_list) THEN
869 FND_MSG_PUB.initialize;
870 END IF;
871
872 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
873 -- Find the match rule
874 null;
875
876 -- No MATCH RULE FOUND
877 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
878 FND_MSG_PUB.ADD;
879 RAISE FND_API.G_EXC_ERROR;
880 END IF;
881 OPEN c_match_rule;
882 FETCH c_match_rule INTO l_cmp_flag;
883 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
884 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
885 FND_MSG_PUB.ADD;
886 RAISE FND_API.G_EXC_ERROR;
887 END IF;
888 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
889 IF p_rule_id=2 THEN
890 IF NOT HZ_MATCH_RULE_2.check_staged THEN
891 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
892 FND_MSG_PUB.ADD;
893 RAISE FND_API.G_EXC_ERROR;
894 END IF;
895 HZ_MATCH_RULE_2.find_party_details(
896 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
897 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
898 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
899 ELSIF p_rule_id=3 THEN
900 IF NOT HZ_MATCH_RULE_3.check_staged THEN
901 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
902 FND_MSG_PUB.ADD;
903 RAISE FND_API.G_EXC_ERROR;
904 END IF;
905 HZ_MATCH_RULE_3.find_party_details(
906 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
907 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
908 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
909 ELSIF p_rule_id=4 THEN
910 IF NOT HZ_MATCH_RULE_4.check_staged THEN
911 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
912 FND_MSG_PUB.ADD;
913 RAISE FND_API.G_EXC_ERROR;
914 END IF;
915 HZ_MATCH_RULE_4.find_party_details(
916 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
917 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
918 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
919 ELSIF p_rule_id=5 THEN
920 IF NOT HZ_MATCH_RULE_5.check_staged THEN
921 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
922 FND_MSG_PUB.ADD;
923 RAISE FND_API.G_EXC_ERROR;
924 END IF;
925 HZ_MATCH_RULE_5.find_party_details(
926 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
927 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
928 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
929 ELSIF p_rule_id=6 THEN
930 IF NOT HZ_MATCH_RULE_6.check_staged THEN
931 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
932 FND_MSG_PUB.ADD;
933 RAISE FND_API.G_EXC_ERROR;
934 END IF;
935 HZ_MATCH_RULE_6.find_party_details(
936 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
937 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
938 -- Code for Match rule SAMPLE: SIMILAR_PERSON
939 ELSIF p_rule_id=7 THEN
940 IF NOT HZ_MATCH_RULE_7.check_staged THEN
941 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
942 FND_MSG_PUB.ADD;
943 RAISE FND_API.G_EXC_ERROR;
944 END IF;
945 HZ_MATCH_RULE_7.find_party_details(
946 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
947 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
948 -- Code for Match rule SAMPLE: SEARCH
949 ELSIF p_rule_id=8 THEN
950 IF NOT HZ_MATCH_RULE_8.check_staged THEN
951 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
952 FND_MSG_PUB.ADD;
953 RAISE FND_API.G_EXC_ERROR;
954 END IF;
955 HZ_MATCH_RULE_8.find_party_details(
956 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
957 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
958 -- Code for Match rule RM SEARCH RULE
959 ELSIF p_rule_id=32 THEN
960 IF NOT HZ_MATCH_RULE_32.check_staged THEN
961 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
962 FND_MSG_PUB.ADD;
963 RAISE FND_API.G_EXC_ERROR;
964 END IF;
965 HZ_MATCH_RULE_32.find_party_details(
966 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
967 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
968 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
969 ELSIF p_rule_id=33 THEN
970 IF NOT HZ_MATCH_RULE_33.check_staged THEN
971 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
972 FND_MSG_PUB.ADD;
973 RAISE FND_API.G_EXC_ERROR;
974 END IF;
975 HZ_MATCH_RULE_33.find_party_details(
976 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
977 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
978 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
979 ELSIF p_rule_id=34 THEN
980 IF NOT HZ_MATCH_RULE_34.check_staged THEN
981 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
982 FND_MSG_PUB.ADD;
983 RAISE FND_API.G_EXC_ERROR;
984 END IF;
985 HZ_MATCH_RULE_34.find_party_details(
986 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
987 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
988 -- Code for Match rule DL SMART SEARCH
989 ELSIF p_rule_id=35 THEN
990 IF NOT HZ_MATCH_RULE_35.check_staged THEN
991 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
992 FND_MSG_PUB.ADD;
993 RAISE FND_API.G_EXC_ERROR;
994 END IF;
995 HZ_MATCH_RULE_35.find_party_details(
996 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
997 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
998 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
999 ELSIF p_rule_id=36 THEN
1000 IF NOT HZ_MATCH_RULE_36.check_staged THEN
1001 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1002 FND_MSG_PUB.ADD;
1003 RAISE FND_API.G_EXC_ERROR;
1004 END IF;
1005 HZ_MATCH_RULE_36.find_party_details(
1006 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1007 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1008 -- Code for Match rule DL ADDRESS DEFAULT
1009 ELSIF p_rule_id=37 THEN
1010 IF NOT HZ_MATCH_RULE_37.check_staged THEN
1011 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1012 FND_MSG_PUB.ADD;
1013 RAISE FND_API.G_EXC_ERROR;
1014 END IF;
1015 HZ_MATCH_RULE_37.find_party_details(
1016 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1017 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1018 -- Code for Match rule DL RELATIONSHIP DEFAULT
1019 ELSIF p_rule_id=38 THEN
1020 IF NOT HZ_MATCH_RULE_38.check_staged THEN
1021 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1022 FND_MSG_PUB.ADD;
1023 RAISE FND_API.G_EXC_ERROR;
1024 END IF;
1025 HZ_MATCH_RULE_38.find_party_details(
1026 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1027 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1028 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1029 ELSIF p_rule_id=39 THEN
1030 IF NOT HZ_MATCH_RULE_39.check_staged THEN
1031 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1032 FND_MSG_PUB.ADD;
1033 RAISE FND_API.G_EXC_ERROR;
1034 END IF;
1035 HZ_MATCH_RULE_39.find_party_details(
1036 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1037 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1038 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1039 ELSIF p_rule_id=40 THEN
1040 IF NOT HZ_MATCH_RULE_40.check_staged THEN
1041 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1042 FND_MSG_PUB.ADD;
1043 RAISE FND_API.G_EXC_ERROR;
1044 END IF;
1045 HZ_MATCH_RULE_40.find_party_details(
1046 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1047 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1048 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
1049 ELSIF p_rule_id=41 THEN
1050 IF NOT HZ_MATCH_RULE_41.check_staged THEN
1051 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1052 FND_MSG_PUB.ADD;
1053 RAISE FND_API.G_EXC_ERROR;
1054 END IF;
1055 HZ_MATCH_RULE_41.find_party_details(
1056 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1057 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1058 -- Code for Match rule SAMPLE: SEARCH EXACT
1059 ELSIF p_rule_id=42 THEN
1060 IF NOT HZ_MATCH_RULE_42.check_staged THEN
1061 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1062 FND_MSG_PUB.ADD;
1063 RAISE FND_API.G_EXC_ERROR;
1064 END IF;
1065 HZ_MATCH_RULE_42.find_party_details(
1066 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1067 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1068 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
1069 ELSIF p_rule_id=48 THEN
1070 IF NOT HZ_MATCH_RULE_48.check_staged THEN
1071 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1072 FND_MSG_PUB.ADD;
1073 RAISE FND_API.G_EXC_ERROR;
1074 END IF;
1075 HZ_MATCH_RULE_48.find_party_details(
1076 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1077 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1078 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
1079 ELSIF p_rule_id=50 THEN
1080 IF NOT HZ_MATCH_RULE_50.check_staged THEN
1081 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1082 FND_MSG_PUB.ADD;
1083 RAISE FND_API.G_EXC_ERROR;
1084 END IF;
1085 HZ_MATCH_RULE_50.find_party_details(
1086 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1087 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1088 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
1089 ELSIF p_rule_id=51 THEN
1090 IF NOT HZ_MATCH_RULE_51.check_staged THEN
1091 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1092 FND_MSG_PUB.ADD;
1093 RAISE FND_API.G_EXC_ERROR;
1094 END IF;
1095 HZ_MATCH_RULE_51.find_party_details(
1096 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1097 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1098 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
1099 ELSIF p_rule_id=52 THEN
1100 IF NOT HZ_MATCH_RULE_52.check_staged THEN
1101 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1102 FND_MSG_PUB.ADD;
1103 RAISE FND_API.G_EXC_ERROR;
1104 END IF;
1105 HZ_MATCH_RULE_52.find_party_details(
1106 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1107 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1108 -- Code for Match rule CREDIT MANAGEMENT SEARCH
1109 ELSIF p_rule_id=53 THEN
1110 IF NOT HZ_MATCH_RULE_53.check_staged THEN
1111 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1112 FND_MSG_PUB.ADD;
1113 RAISE FND_API.G_EXC_ERROR;
1114 END IF;
1115 HZ_MATCH_RULE_53.find_party_details(
1116 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1117 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1118 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
1119 ELSIF p_rule_id=58 THEN
1120 IF NOT HZ_MATCH_RULE_58.check_staged THEN
1121 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1122 FND_MSG_PUB.ADD;
1123 RAISE FND_API.G_EXC_ERROR;
1124 END IF;
1125 HZ_MATCH_RULE_58.find_party_details(
1126 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1127 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1128 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
1129 ELSIF p_rule_id=60 THEN
1130 IF NOT HZ_MATCH_RULE_60.check_staged THEN
1131 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1132 FND_MSG_PUB.ADD;
1133 RAISE FND_API.G_EXC_ERROR;
1134 END IF;
1135 HZ_MATCH_RULE_60.find_party_details(
1136 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1137 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1138 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1139 ELSIF p_rule_id=61 THEN
1140 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1141 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1142 FND_MSG_PUB.ADD;
1143 RAISE FND_API.G_EXC_ERROR;
1144 END IF;
1145 HZ_MATCH_RULE_61.find_party_details(
1146 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1147 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1148 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1149 ELSIF p_rule_id=62 THEN
1150 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1151 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1152 FND_MSG_PUB.ADD;
1153 RAISE FND_API.G_EXC_ERROR;
1154 END IF;
1155 HZ_MATCH_RULE_62.find_party_details(
1156 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1157 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1158 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1159 ELSIF p_rule_id=98 THEN
1160 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1161 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1162 FND_MSG_PUB.ADD;
1163 RAISE FND_API.G_EXC_ERROR;
1164 END IF;
1165 HZ_MATCH_RULE_98.find_party_details(
1166 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1167 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1168 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
1169 ELSIF p_rule_id=99 THEN
1170 IF NOT HZ_MATCH_RULE_99.check_staged THEN
1171 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1172 FND_MSG_PUB.ADD;
1173 RAISE FND_API.G_EXC_ERROR;
1174 END IF;
1175 HZ_MATCH_RULE_99.find_party_details(
1176 p_rule_id,p_party_search_rec,p_party_site_list,p_contact_list,
1177 p_contact_point_list,p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
1178 END IF;
1179 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1180 hz_utility_v2pub.debug(p_message=>'find_party_details(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1181 END IF;
1182 --Standard call to get message count and if count is 1, get message info
1183 FND_MSG_PUB.Count_And_Get(
1184 p_encoded => FND_API.G_FALSE,
1185 p_count => x_msg_count,
1186 p_data => x_msg_data);
1187 EXCEPTION
1188 WHEN FND_API.G_EXC_ERROR THEN
1189 x_return_status := FND_API.G_RET_STS_ERROR;
1190 FND_MSG_PUB.Count_And_Get(
1191 p_encoded => FND_API.G_FALSE,
1192 p_count => x_msg_count,
1193 p_data => x_msg_data);
1194 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1195 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1196 FND_MSG_PUB.Count_And_Get(
1197 p_encoded => FND_API.G_FALSE,
1198 p_count => x_msg_count,
1199 p_data => x_msg_data);
1200
1201 WHEN OTHERS THEN
1202 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
1204 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
1205 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1206 FND_MSG_PUB.ADD;
1207
1208 FND_MSG_PUB.Count_And_Get(
1209 p_encoded => FND_API.G_FALSE,
1210 p_count => x_msg_count,
1211 p_data => x_msg_data);
1212 END;
1213
1214 PROCEDURE find_duplicate_parties (
1215 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
1216 p_rule_id IN NUMBER,
1217 p_party_id IN NUMBER,
1218 p_restrict_sql IN VARCHAR2,
1219 p_match_type IN VARCHAR2,
1220 p_dup_batch_id IN NUMBER,
1221 p_search_merged IN VARCHAR2,
1222 x_dup_set_id OUT NUMBER,
1223 x_search_ctx_id OUT NUMBER,
1224 x_num_matches OUT NUMBER,
1225 x_return_status OUT VARCHAR2,
1226 x_msg_count OUT NUMBER,
1227 x_msg_data OUT VARCHAR2
1228 ) IS
1229 CURSOR c_match_rule IS
1230 SELECT COMPILATION_FLAG
1231 FROM HZ_MATCH_RULES_VL
1232 WHERE MATCH_RULE_ID = p_rule_id;
1233 l_cmp_flag VARCHAR2(1);
1234 BEGIN
1235 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1236 hz_utility_v2pub.debug(p_message=>'find_duplicate_parties(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1237 END IF;
1238 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1239 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
1240 END IF;
1241
1242 -- Initialize return status and message stack
1243 x_return_status := FND_API.G_RET_STS_SUCCESS;
1244 IF FND_API.to_Boolean(p_init_msg_list) THEN
1245 FND_MSG_PUB.initialize;
1246 END IF;
1247
1248 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
1249 -- Find the match rule
1250 null;
1251
1252 -- No MATCH RULE FOUND
1253 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
1254 FND_MSG_PUB.ADD;
1255 RAISE FND_API.G_EXC_ERROR;
1256 END IF;
1257 IF g_last_rule<>p_rule_id OR NOT g_last_rule_valid THEN
1258 OPEN c_match_rule;
1259 FETCH c_match_rule INTO l_cmp_flag;
1260 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
1261 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
1262 FND_MSG_PUB.ADD;
1263 RAISE FND_API.G_EXC_ERROR;
1264 END IF;
1265 g_last_rule := p_rule_id;
1266 g_last_rule_valid := TRUE;
1267 END IF;
1268 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
1269 IF p_rule_id=2 THEN
1270 IF NOT HZ_MATCH_RULE_2.check_staged THEN
1271 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1272 FND_MSG_PUB.ADD;
1273 RAISE FND_API.G_EXC_ERROR;
1274 END IF;
1275 HZ_MATCH_RULE_2.find_duplicate_parties(
1276 p_rule_id,p_party_id,
1277 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1278 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
1279 ELSIF p_rule_id=3 THEN
1280 IF NOT HZ_MATCH_RULE_3.check_staged THEN
1281 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1282 FND_MSG_PUB.ADD;
1283 RAISE FND_API.G_EXC_ERROR;
1284 END IF;
1285 HZ_MATCH_RULE_3.find_duplicate_parties(
1286 p_rule_id,p_party_id,
1287 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1288 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
1289 ELSIF p_rule_id=4 THEN
1290 IF NOT HZ_MATCH_RULE_4.check_staged THEN
1291 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1292 FND_MSG_PUB.ADD;
1293 RAISE FND_API.G_EXC_ERROR;
1294 END IF;
1295 HZ_MATCH_RULE_4.find_duplicate_parties(
1296 p_rule_id,p_party_id,
1297 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1298 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
1299 ELSIF p_rule_id=5 THEN
1300 IF NOT HZ_MATCH_RULE_5.check_staged THEN
1301 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1302 FND_MSG_PUB.ADD;
1303 RAISE FND_API.G_EXC_ERROR;
1304 END IF;
1305 HZ_MATCH_RULE_5.find_duplicate_parties(
1306 p_rule_id,p_party_id,
1307 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1308 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
1309 ELSIF p_rule_id=6 THEN
1310 IF NOT HZ_MATCH_RULE_6.check_staged THEN
1311 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1312 FND_MSG_PUB.ADD;
1313 RAISE FND_API.G_EXC_ERROR;
1314 END IF;
1315 HZ_MATCH_RULE_6.find_duplicate_parties(
1316 p_rule_id,p_party_id,
1317 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1318 -- Code for Match rule SAMPLE: SIMILAR_PERSON
1319 ELSIF p_rule_id=7 THEN
1320 IF NOT HZ_MATCH_RULE_7.check_staged THEN
1321 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1322 FND_MSG_PUB.ADD;
1323 RAISE FND_API.G_EXC_ERROR;
1324 END IF;
1325 HZ_MATCH_RULE_7.find_duplicate_parties(
1326 p_rule_id,p_party_id,
1327 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1328 -- Code for Match rule SAMPLE: SEARCH
1329 ELSIF p_rule_id=8 THEN
1330 IF NOT HZ_MATCH_RULE_8.check_staged THEN
1331 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1332 FND_MSG_PUB.ADD;
1333 RAISE FND_API.G_EXC_ERROR;
1334 END IF;
1335 HZ_MATCH_RULE_8.find_duplicate_parties(
1336 p_rule_id,p_party_id,
1337 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1338 -- Code for Match rule RM SEARCH RULE
1339 ELSIF p_rule_id=32 THEN
1340 IF NOT HZ_MATCH_RULE_32.check_staged THEN
1341 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1342 FND_MSG_PUB.ADD;
1343 RAISE FND_API.G_EXC_ERROR;
1344 END IF;
1345 HZ_MATCH_RULE_32.find_duplicate_parties(
1346 p_rule_id,p_party_id,
1347 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1348 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
1349 ELSIF p_rule_id=33 THEN
1350 IF NOT HZ_MATCH_RULE_33.check_staged THEN
1351 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1352 FND_MSG_PUB.ADD;
1353 RAISE FND_API.G_EXC_ERROR;
1354 END IF;
1355 HZ_MATCH_RULE_33.find_duplicate_parties(
1356 p_rule_id,p_party_id,
1357 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1358 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
1359 ELSIF p_rule_id=34 THEN
1360 IF NOT HZ_MATCH_RULE_34.check_staged THEN
1361 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1362 FND_MSG_PUB.ADD;
1363 RAISE FND_API.G_EXC_ERROR;
1364 END IF;
1365 HZ_MATCH_RULE_34.find_duplicate_parties(
1366 p_rule_id,p_party_id,
1367 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1368 -- Code for Match rule DL SMART SEARCH
1369 ELSIF p_rule_id=35 THEN
1370 IF NOT HZ_MATCH_RULE_35.check_staged THEN
1371 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1372 FND_MSG_PUB.ADD;
1373 RAISE FND_API.G_EXC_ERROR;
1374 END IF;
1375 HZ_MATCH_RULE_35.find_duplicate_parties(
1376 p_rule_id,p_party_id,
1377 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1378 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
1379 ELSIF p_rule_id=36 THEN
1380 IF NOT HZ_MATCH_RULE_36.check_staged THEN
1381 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1382 FND_MSG_PUB.ADD;
1383 RAISE FND_API.G_EXC_ERROR;
1384 END IF;
1385 HZ_MATCH_RULE_36.find_duplicate_parties(
1386 p_rule_id,p_party_id,
1387 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1388 -- Code for Match rule DL ADDRESS DEFAULT
1389 ELSIF p_rule_id=37 THEN
1390 IF NOT HZ_MATCH_RULE_37.check_staged THEN
1391 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1392 FND_MSG_PUB.ADD;
1393 RAISE FND_API.G_EXC_ERROR;
1394 END IF;
1395 HZ_MATCH_RULE_37.find_duplicate_parties(
1396 p_rule_id,p_party_id,
1397 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1398 -- Code for Match rule DL RELATIONSHIP DEFAULT
1399 ELSIF p_rule_id=38 THEN
1400 IF NOT HZ_MATCH_RULE_38.check_staged THEN
1401 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1402 FND_MSG_PUB.ADD;
1403 RAISE FND_API.G_EXC_ERROR;
1404 END IF;
1405 HZ_MATCH_RULE_38.find_duplicate_parties(
1406 p_rule_id,p_party_id,
1407 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1408 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1409 ELSIF p_rule_id=39 THEN
1410 IF NOT HZ_MATCH_RULE_39.check_staged THEN
1411 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1412 FND_MSG_PUB.ADD;
1413 RAISE FND_API.G_EXC_ERROR;
1414 END IF;
1415 HZ_MATCH_RULE_39.find_duplicate_parties(
1416 p_rule_id,p_party_id,
1417 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1418 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1419 ELSIF p_rule_id=40 THEN
1420 IF NOT HZ_MATCH_RULE_40.check_staged THEN
1421 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1422 FND_MSG_PUB.ADD;
1423 RAISE FND_API.G_EXC_ERROR;
1424 END IF;
1425 HZ_MATCH_RULE_40.find_duplicate_parties(
1426 p_rule_id,p_party_id,
1427 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1428 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
1429 ELSIF p_rule_id=41 THEN
1430 IF NOT HZ_MATCH_RULE_41.check_staged THEN
1431 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1432 FND_MSG_PUB.ADD;
1433 RAISE FND_API.G_EXC_ERROR;
1434 END IF;
1435 HZ_MATCH_RULE_41.find_duplicate_parties(
1436 p_rule_id,p_party_id,
1437 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1438 -- Code for Match rule SAMPLE: SEARCH EXACT
1439 ELSIF p_rule_id=42 THEN
1440 IF NOT HZ_MATCH_RULE_42.check_staged THEN
1441 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1442 FND_MSG_PUB.ADD;
1443 RAISE FND_API.G_EXC_ERROR;
1444 END IF;
1445 HZ_MATCH_RULE_42.find_duplicate_parties(
1446 p_rule_id,p_party_id,
1447 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1448 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
1449 ELSIF p_rule_id=48 THEN
1450 IF NOT HZ_MATCH_RULE_48.check_staged THEN
1451 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1452 FND_MSG_PUB.ADD;
1453 RAISE FND_API.G_EXC_ERROR;
1454 END IF;
1455 HZ_MATCH_RULE_48.find_duplicate_parties(
1456 p_rule_id,p_party_id,
1457 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1458 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
1459 ELSIF p_rule_id=50 THEN
1460 IF NOT HZ_MATCH_RULE_50.check_staged THEN
1461 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1462 FND_MSG_PUB.ADD;
1463 RAISE FND_API.G_EXC_ERROR;
1464 END IF;
1465 HZ_MATCH_RULE_50.find_duplicate_parties(
1466 p_rule_id,p_party_id,
1467 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1468 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
1469 ELSIF p_rule_id=51 THEN
1470 IF NOT HZ_MATCH_RULE_51.check_staged THEN
1471 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1472 FND_MSG_PUB.ADD;
1473 RAISE FND_API.G_EXC_ERROR;
1474 END IF;
1475 HZ_MATCH_RULE_51.find_duplicate_parties(
1476 p_rule_id,p_party_id,
1477 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1478 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
1479 ELSIF p_rule_id=52 THEN
1480 IF NOT HZ_MATCH_RULE_52.check_staged THEN
1481 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1482 FND_MSG_PUB.ADD;
1483 RAISE FND_API.G_EXC_ERROR;
1484 END IF;
1485 HZ_MATCH_RULE_52.find_duplicate_parties(
1486 p_rule_id,p_party_id,
1487 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1488 -- Code for Match rule CREDIT MANAGEMENT SEARCH
1489 ELSIF p_rule_id=53 THEN
1490 IF NOT HZ_MATCH_RULE_53.check_staged THEN
1491 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1492 FND_MSG_PUB.ADD;
1493 RAISE FND_API.G_EXC_ERROR;
1494 END IF;
1495 HZ_MATCH_RULE_53.find_duplicate_parties(
1496 p_rule_id,p_party_id,
1497 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1498 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
1499 ELSIF p_rule_id=58 THEN
1500 IF NOT HZ_MATCH_RULE_58.check_staged THEN
1501 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1502 FND_MSG_PUB.ADD;
1503 RAISE FND_API.G_EXC_ERROR;
1504 END IF;
1505 HZ_MATCH_RULE_58.find_duplicate_parties(
1506 p_rule_id,p_party_id,
1507 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1508 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
1509 ELSIF p_rule_id=60 THEN
1510 IF NOT HZ_MATCH_RULE_60.check_staged THEN
1511 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1512 FND_MSG_PUB.ADD;
1513 RAISE FND_API.G_EXC_ERROR;
1514 END IF;
1515 HZ_MATCH_RULE_60.find_duplicate_parties(
1516 p_rule_id,p_party_id,
1517 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1518 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1519 ELSIF p_rule_id=61 THEN
1520 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1521 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1522 FND_MSG_PUB.ADD;
1523 RAISE FND_API.G_EXC_ERROR;
1524 END IF;
1525 HZ_MATCH_RULE_61.find_duplicate_parties(
1526 p_rule_id,p_party_id,
1527 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1528 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1529 ELSIF p_rule_id=62 THEN
1530 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1531 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1532 FND_MSG_PUB.ADD;
1533 RAISE FND_API.G_EXC_ERROR;
1534 END IF;
1535 HZ_MATCH_RULE_62.find_duplicate_parties(
1536 p_rule_id,p_party_id,
1537 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1538 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1539 ELSIF p_rule_id=98 THEN
1540 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1541 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1542 FND_MSG_PUB.ADD;
1543 RAISE FND_API.G_EXC_ERROR;
1544 END IF;
1545 HZ_MATCH_RULE_98.find_duplicate_parties(
1546 p_rule_id,p_party_id,
1547 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1548 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
1549 ELSIF p_rule_id=99 THEN
1550 IF NOT HZ_MATCH_RULE_99.check_staged THEN
1551 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1552 FND_MSG_PUB.ADD;
1553 RAISE FND_API.G_EXC_ERROR;
1554 END IF;
1555 HZ_MATCH_RULE_99.find_duplicate_parties(
1556 p_rule_id,p_party_id,
1557 p_restrict_sql,p_match_type,p_dup_batch_id,p_search_merged,x_dup_set_id, x_search_ctx_id,x_num_matches);
1558 END IF;
1559 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1560 hz_utility_v2pub.debug(p_message=>'find_duplicate_parties(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1561 END IF;
1562 --Standard call to get message count and if count is 1, get message info
1563 FND_MSG_PUB.Count_And_Get(
1564 p_encoded => FND_API.G_FALSE,
1565 p_count => x_msg_count,
1566 p_data => x_msg_data);
1567 EXCEPTION
1568 WHEN FND_API.G_EXC_ERROR THEN
1569 x_return_status := FND_API.G_RET_STS_ERROR;
1570 FND_MSG_PUB.Count_And_Get(
1571 p_encoded => FND_API.G_FALSE,
1572 p_count => x_msg_count,
1573 p_data => x_msg_data);
1574 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1575 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1576 FND_MSG_PUB.Count_And_Get(
1577 p_encoded => FND_API.G_FALSE,
1578 p_count => x_msg_count,
1579 p_data => x_msg_data);
1580
1581 WHEN OTHERS THEN
1582 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1583 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
1584 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
1585 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1586 FND_MSG_PUB.ADD;
1587
1588 FND_MSG_PUB.Count_And_Get(
1589 p_encoded => FND_API.G_FALSE,
1590 p_count => x_msg_count,
1591 p_data => x_msg_data);
1592 END;
1593
1594
1595 PROCEDURE find_duplicate_party_sites (
1596 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
1597 p_rule_id IN NUMBER,
1598 p_party_site_id IN NUMBER,
1599 p_party_id IN NUMBER,
1600 p_restrict_sql IN VARCHAR2,
1601 p_match_type IN VARCHAR2,
1602 x_search_ctx_id OUT NUMBER,
1603 x_num_matches OUT NUMBER,
1604 x_return_status OUT VARCHAR2,
1605 x_msg_count OUT NUMBER,
1606 x_msg_data OUT VARCHAR2
1607 ) IS
1608 CURSOR c_match_rule IS
1609 SELECT COMPILATION_FLAG
1610 FROM HZ_MATCH_RULES_VL
1611 WHERE MATCH_RULE_ID = p_rule_id;
1612 l_cmp_flag VARCHAR2(1);
1613 BEGIN
1614 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1615 hz_utility_v2pub.debug(p_message=>'find_duplicate_party_sites(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1616 END IF;
1617 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1618 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
1619 END IF;
1620
1621 -- Initialize return status and message stack
1622 x_return_status := FND_API.G_RET_STS_SUCCESS;
1623 IF FND_API.to_Boolean(p_init_msg_list) THEN
1624 FND_MSG_PUB.initialize;
1625 END IF;
1626
1627 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
1628 -- Find the match rule
1629 null;
1630
1631 -- No MATCH RULE FOUND
1632 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
1633 FND_MSG_PUB.ADD;
1634 RAISE FND_API.G_EXC_ERROR;
1635 END IF;
1636 OPEN c_match_rule;
1637 FETCH c_match_rule INTO l_cmp_flag;
1638 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
1639 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
1640 FND_MSG_PUB.ADD;
1641 RAISE FND_API.G_EXC_ERROR;
1642 END IF;
1643 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
1644 IF p_rule_id=2 THEN
1645 IF NOT HZ_MATCH_RULE_2.check_staged THEN
1646 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1647 FND_MSG_PUB.ADD;
1648 RAISE FND_API.G_EXC_ERROR;
1649 END IF;
1650 HZ_MATCH_RULE_2.find_duplicate_party_sites(
1651 p_rule_id,p_party_site_id,p_party_id,
1652 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1653 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
1654 ELSIF p_rule_id=3 THEN
1655 IF NOT HZ_MATCH_RULE_3.check_staged THEN
1656 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1657 FND_MSG_PUB.ADD;
1658 RAISE FND_API.G_EXC_ERROR;
1659 END IF;
1660 HZ_MATCH_RULE_3.find_duplicate_party_sites(
1661 p_rule_id,p_party_site_id,p_party_id,
1662 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1663 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
1664 ELSIF p_rule_id=4 THEN
1665 IF NOT HZ_MATCH_RULE_4.check_staged THEN
1666 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1667 FND_MSG_PUB.ADD;
1668 RAISE FND_API.G_EXC_ERROR;
1669 END IF;
1670 HZ_MATCH_RULE_4.find_duplicate_party_sites(
1671 p_rule_id,p_party_site_id,p_party_id,
1672 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1673 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
1674 ELSIF p_rule_id=5 THEN
1675 IF NOT HZ_MATCH_RULE_5.check_staged THEN
1676 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1677 FND_MSG_PUB.ADD;
1678 RAISE FND_API.G_EXC_ERROR;
1679 END IF;
1680 HZ_MATCH_RULE_5.find_duplicate_party_sites(
1681 p_rule_id,p_party_site_id,p_party_id,
1682 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1683 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
1684 ELSIF p_rule_id=6 THEN
1685 IF NOT HZ_MATCH_RULE_6.check_staged THEN
1686 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1687 FND_MSG_PUB.ADD;
1688 RAISE FND_API.G_EXC_ERROR;
1689 END IF;
1690 HZ_MATCH_RULE_6.find_duplicate_party_sites(
1691 p_rule_id,p_party_site_id,p_party_id,
1692 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1693 -- Code for Match rule SAMPLE: SIMILAR_PERSON
1694 ELSIF p_rule_id=7 THEN
1695 IF NOT HZ_MATCH_RULE_7.check_staged THEN
1696 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1697 FND_MSG_PUB.ADD;
1698 RAISE FND_API.G_EXC_ERROR;
1699 END IF;
1700 HZ_MATCH_RULE_7.find_duplicate_party_sites(
1701 p_rule_id,p_party_site_id,p_party_id,
1702 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1703 -- Code for Match rule SAMPLE: SEARCH
1704 ELSIF p_rule_id=8 THEN
1705 IF NOT HZ_MATCH_RULE_8.check_staged THEN
1706 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1707 FND_MSG_PUB.ADD;
1708 RAISE FND_API.G_EXC_ERROR;
1709 END IF;
1710 HZ_MATCH_RULE_8.find_duplicate_party_sites(
1711 p_rule_id,p_party_site_id,p_party_id,
1712 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1713 -- Code for Match rule RM SEARCH RULE
1714 ELSIF p_rule_id=32 THEN
1715 IF NOT HZ_MATCH_RULE_32.check_staged THEN
1716 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1717 FND_MSG_PUB.ADD;
1718 RAISE FND_API.G_EXC_ERROR;
1719 END IF;
1720 HZ_MATCH_RULE_32.find_duplicate_party_sites(
1721 p_rule_id,p_party_site_id,p_party_id,
1722 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1723 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
1724 ELSIF p_rule_id=33 THEN
1725 IF NOT HZ_MATCH_RULE_33.check_staged THEN
1726 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1727 FND_MSG_PUB.ADD;
1728 RAISE FND_API.G_EXC_ERROR;
1729 END IF;
1730 HZ_MATCH_RULE_33.find_duplicate_party_sites(
1731 p_rule_id,p_party_site_id,p_party_id,
1732 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1733 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
1734 ELSIF p_rule_id=34 THEN
1735 IF NOT HZ_MATCH_RULE_34.check_staged THEN
1736 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1737 FND_MSG_PUB.ADD;
1738 RAISE FND_API.G_EXC_ERROR;
1739 END IF;
1740 HZ_MATCH_RULE_34.find_duplicate_party_sites(
1741 p_rule_id,p_party_site_id,p_party_id,
1742 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1743 -- Code for Match rule DL SMART SEARCH
1744 ELSIF p_rule_id=35 THEN
1745 IF NOT HZ_MATCH_RULE_35.check_staged THEN
1746 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1747 FND_MSG_PUB.ADD;
1748 RAISE FND_API.G_EXC_ERROR;
1749 END IF;
1750 HZ_MATCH_RULE_35.find_duplicate_party_sites(
1751 p_rule_id,p_party_site_id,p_party_id,
1752 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1753 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
1754 ELSIF p_rule_id=36 THEN
1755 IF NOT HZ_MATCH_RULE_36.check_staged THEN
1756 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1757 FND_MSG_PUB.ADD;
1758 RAISE FND_API.G_EXC_ERROR;
1759 END IF;
1760 HZ_MATCH_RULE_36.find_duplicate_party_sites(
1761 p_rule_id,p_party_site_id,p_party_id,
1762 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1763 -- Code for Match rule DL ADDRESS DEFAULT
1764 ELSIF p_rule_id=37 THEN
1765 IF NOT HZ_MATCH_RULE_37.check_staged THEN
1766 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1767 FND_MSG_PUB.ADD;
1768 RAISE FND_API.G_EXC_ERROR;
1769 END IF;
1770 HZ_MATCH_RULE_37.find_duplicate_party_sites(
1771 p_rule_id,p_party_site_id,p_party_id,
1772 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1773 -- Code for Match rule DL RELATIONSHIP DEFAULT
1774 ELSIF p_rule_id=38 THEN
1775 IF NOT HZ_MATCH_RULE_38.check_staged THEN
1776 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1777 FND_MSG_PUB.ADD;
1778 RAISE FND_API.G_EXC_ERROR;
1779 END IF;
1780 HZ_MATCH_RULE_38.find_duplicate_party_sites(
1781 p_rule_id,p_party_site_id,p_party_id,
1782 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1783 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
1784 ELSIF p_rule_id=39 THEN
1785 IF NOT HZ_MATCH_RULE_39.check_staged THEN
1786 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1787 FND_MSG_PUB.ADD;
1788 RAISE FND_API.G_EXC_ERROR;
1789 END IF;
1790 HZ_MATCH_RULE_39.find_duplicate_party_sites(
1791 p_rule_id,p_party_site_id,p_party_id,
1792 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1793 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
1794 ELSIF p_rule_id=40 THEN
1795 IF NOT HZ_MATCH_RULE_40.check_staged THEN
1796 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1797 FND_MSG_PUB.ADD;
1798 RAISE FND_API.G_EXC_ERROR;
1799 END IF;
1800 HZ_MATCH_RULE_40.find_duplicate_party_sites(
1801 p_rule_id,p_party_site_id,p_party_id,
1802 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1803 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
1804 ELSIF p_rule_id=41 THEN
1805 IF NOT HZ_MATCH_RULE_41.check_staged THEN
1806 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1807 FND_MSG_PUB.ADD;
1808 RAISE FND_API.G_EXC_ERROR;
1809 END IF;
1810 HZ_MATCH_RULE_41.find_duplicate_party_sites(
1811 p_rule_id,p_party_site_id,p_party_id,
1812 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1813 -- Code for Match rule SAMPLE: SEARCH EXACT
1814 ELSIF p_rule_id=42 THEN
1815 IF NOT HZ_MATCH_RULE_42.check_staged THEN
1816 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1817 FND_MSG_PUB.ADD;
1818 RAISE FND_API.G_EXC_ERROR;
1819 END IF;
1820 HZ_MATCH_RULE_42.find_duplicate_party_sites(
1821 p_rule_id,p_party_site_id,p_party_id,
1822 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1823 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
1824 ELSIF p_rule_id=48 THEN
1825 IF NOT HZ_MATCH_RULE_48.check_staged THEN
1826 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1827 FND_MSG_PUB.ADD;
1828 RAISE FND_API.G_EXC_ERROR;
1829 END IF;
1830 HZ_MATCH_RULE_48.find_duplicate_party_sites(
1831 p_rule_id,p_party_site_id,p_party_id,
1832 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1833 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
1834 ELSIF p_rule_id=50 THEN
1835 IF NOT HZ_MATCH_RULE_50.check_staged THEN
1836 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1837 FND_MSG_PUB.ADD;
1838 RAISE FND_API.G_EXC_ERROR;
1839 END IF;
1840 HZ_MATCH_RULE_50.find_duplicate_party_sites(
1841 p_rule_id,p_party_site_id,p_party_id,
1842 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1843 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
1844 ELSIF p_rule_id=51 THEN
1845 IF NOT HZ_MATCH_RULE_51.check_staged THEN
1846 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1847 FND_MSG_PUB.ADD;
1848 RAISE FND_API.G_EXC_ERROR;
1849 END IF;
1850 HZ_MATCH_RULE_51.find_duplicate_party_sites(
1851 p_rule_id,p_party_site_id,p_party_id,
1852 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1853 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
1854 ELSIF p_rule_id=52 THEN
1855 IF NOT HZ_MATCH_RULE_52.check_staged THEN
1856 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1857 FND_MSG_PUB.ADD;
1858 RAISE FND_API.G_EXC_ERROR;
1859 END IF;
1860 HZ_MATCH_RULE_52.find_duplicate_party_sites(
1861 p_rule_id,p_party_site_id,p_party_id,
1862 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1863 -- Code for Match rule CREDIT MANAGEMENT SEARCH
1864 ELSIF p_rule_id=53 THEN
1865 IF NOT HZ_MATCH_RULE_53.check_staged THEN
1866 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1867 FND_MSG_PUB.ADD;
1868 RAISE FND_API.G_EXC_ERROR;
1869 END IF;
1870 HZ_MATCH_RULE_53.find_duplicate_party_sites(
1871 p_rule_id,p_party_site_id,p_party_id,
1872 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1873 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
1874 ELSIF p_rule_id=58 THEN
1875 IF NOT HZ_MATCH_RULE_58.check_staged THEN
1876 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1877 FND_MSG_PUB.ADD;
1878 RAISE FND_API.G_EXC_ERROR;
1879 END IF;
1880 HZ_MATCH_RULE_58.find_duplicate_party_sites(
1881 p_rule_id,p_party_site_id,p_party_id,
1882 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1883 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
1884 ELSIF p_rule_id=60 THEN
1885 IF NOT HZ_MATCH_RULE_60.check_staged THEN
1886 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1887 FND_MSG_PUB.ADD;
1888 RAISE FND_API.G_EXC_ERROR;
1889 END IF;
1890 HZ_MATCH_RULE_60.find_duplicate_party_sites(
1891 p_rule_id,p_party_site_id,p_party_id,
1892 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1893 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
1894 ELSIF p_rule_id=61 THEN
1895 IF NOT HZ_MATCH_RULE_61.check_staged THEN
1896 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1897 FND_MSG_PUB.ADD;
1898 RAISE FND_API.G_EXC_ERROR;
1899 END IF;
1900 HZ_MATCH_RULE_61.find_duplicate_party_sites(
1901 p_rule_id,p_party_site_id,p_party_id,
1902 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1903 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
1904 ELSIF p_rule_id=62 THEN
1905 IF NOT HZ_MATCH_RULE_62.check_staged THEN
1906 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1907 FND_MSG_PUB.ADD;
1908 RAISE FND_API.G_EXC_ERROR;
1909 END IF;
1910 HZ_MATCH_RULE_62.find_duplicate_party_sites(
1911 p_rule_id,p_party_site_id,p_party_id,
1912 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1913 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
1914 ELSIF p_rule_id=98 THEN
1915 IF NOT HZ_MATCH_RULE_98.check_staged THEN
1916 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1917 FND_MSG_PUB.ADD;
1918 RAISE FND_API.G_EXC_ERROR;
1919 END IF;
1920 HZ_MATCH_RULE_98.find_duplicate_party_sites(
1921 p_rule_id,p_party_site_id,p_party_id,
1922 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1923 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
1924 ELSIF p_rule_id=99 THEN
1925 IF NOT HZ_MATCH_RULE_99.check_staged THEN
1926 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
1927 FND_MSG_PUB.ADD;
1928 RAISE FND_API.G_EXC_ERROR;
1929 END IF;
1930 HZ_MATCH_RULE_99.find_duplicate_party_sites(
1931 p_rule_id,p_party_site_id,p_party_id,
1932 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
1933 END IF;
1934 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1935 hz_utility_v2pub.debug(p_message=>'find_duplicate_party_sites(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1936 END IF;
1937 --Standard call to get message count and if count is 1, get message info
1938 FND_MSG_PUB.Count_And_Get(
1939 p_encoded => FND_API.G_FALSE,
1940 p_count => x_msg_count,
1941 p_data => x_msg_data);
1942 EXCEPTION
1943 WHEN FND_API.G_EXC_ERROR THEN
1944 x_return_status := FND_API.G_RET_STS_ERROR;
1945 FND_MSG_PUB.Count_And_Get(
1946 p_encoded => FND_API.G_FALSE,
1947 p_count => x_msg_count,
1948 p_data => x_msg_data);
1949 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1950 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1951 FND_MSG_PUB.Count_And_Get(
1952 p_encoded => FND_API.G_FALSE,
1953 p_count => x_msg_count,
1954 p_data => x_msg_data);
1955
1956 WHEN OTHERS THEN
1957 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1958 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
1959 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
1960 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1961 FND_MSG_PUB.ADD;
1962
1963 FND_MSG_PUB.Count_And_Get(
1964 p_encoded => FND_API.G_FALSE,
1965 p_count => x_msg_count,
1966 p_data => x_msg_data);
1967 END;
1968
1969 PROCEDURE find_duplicate_contacts (
1970 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
1971 p_rule_id IN NUMBER,
1972 p_org_contact_id IN NUMBER,
1973 p_party_id IN NUMBER,
1974 p_restrict_sql IN VARCHAR2,
1975 p_match_type IN VARCHAR2,
1976 x_search_ctx_id OUT NUMBER,
1977 x_num_matches OUT NUMBER,
1978 x_return_status OUT VARCHAR2,
1979 x_msg_count OUT NUMBER,
1980 x_msg_data OUT VARCHAR2
1981 ) IS
1982 CURSOR c_match_rule IS
1983 SELECT COMPILATION_FLAG
1984 FROM HZ_MATCH_RULES_VL
1985 WHERE MATCH_RULE_ID = p_rule_id;
1986 l_cmp_flag VARCHAR2(1);
1987 BEGIN
1988 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1989 hz_utility_v2pub.debug(p_message=>'find_duplicate_contacts(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
1990 END IF;
1991 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1992 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
1993 END IF;
1994
1995 -- Initialize return status and message stack
1996 x_return_status := FND_API.G_RET_STS_SUCCESS;
1997 IF FND_API.to_Boolean(p_init_msg_list) THEN
1998 FND_MSG_PUB.initialize;
1999 END IF;
2000
2001 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2002 -- Find the match rule
2003 null;
2004
2005 -- No MATCH RULE FOUND
2006 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2007 FND_MSG_PUB.ADD;
2008 RAISE FND_API.G_EXC_ERROR;
2009 END IF;
2010 OPEN c_match_rule;
2011 FETCH c_match_rule INTO l_cmp_flag;
2012 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2013 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2014 FND_MSG_PUB.ADD;
2015 RAISE FND_API.G_EXC_ERROR;
2016 END IF;
2017 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2018 IF p_rule_id=2 THEN
2019 IF NOT HZ_MATCH_RULE_2.check_staged THEN
2020 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2021 FND_MSG_PUB.ADD;
2022 RAISE FND_API.G_EXC_ERROR;
2023 END IF;
2024 HZ_MATCH_RULE_2.find_duplicate_contacts(
2025 p_rule_id,p_org_contact_id,p_party_id,
2026 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2027 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
2028 ELSIF p_rule_id=3 THEN
2029 IF NOT HZ_MATCH_RULE_3.check_staged THEN
2030 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2031 FND_MSG_PUB.ADD;
2032 RAISE FND_API.G_EXC_ERROR;
2033 END IF;
2034 HZ_MATCH_RULE_3.find_duplicate_contacts(
2035 p_rule_id,p_org_contact_id,p_party_id,
2036 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2037 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
2038 ELSIF p_rule_id=4 THEN
2039 IF NOT HZ_MATCH_RULE_4.check_staged THEN
2040 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2041 FND_MSG_PUB.ADD;
2042 RAISE FND_API.G_EXC_ERROR;
2043 END IF;
2044 HZ_MATCH_RULE_4.find_duplicate_contacts(
2045 p_rule_id,p_org_contact_id,p_party_id,
2046 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2047 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
2048 ELSIF p_rule_id=5 THEN
2049 IF NOT HZ_MATCH_RULE_5.check_staged THEN
2050 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2051 FND_MSG_PUB.ADD;
2052 RAISE FND_API.G_EXC_ERROR;
2053 END IF;
2054 HZ_MATCH_RULE_5.find_duplicate_contacts(
2055 p_rule_id,p_org_contact_id,p_party_id,
2056 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2057 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
2058 ELSIF p_rule_id=6 THEN
2059 IF NOT HZ_MATCH_RULE_6.check_staged THEN
2060 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2061 FND_MSG_PUB.ADD;
2062 RAISE FND_API.G_EXC_ERROR;
2063 END IF;
2064 HZ_MATCH_RULE_6.find_duplicate_contacts(
2065 p_rule_id,p_org_contact_id,p_party_id,
2066 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2067 -- Code for Match rule SAMPLE: SIMILAR_PERSON
2068 ELSIF p_rule_id=7 THEN
2069 IF NOT HZ_MATCH_RULE_7.check_staged THEN
2070 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2071 FND_MSG_PUB.ADD;
2072 RAISE FND_API.G_EXC_ERROR;
2073 END IF;
2074 HZ_MATCH_RULE_7.find_duplicate_contacts(
2075 p_rule_id,p_org_contact_id,p_party_id,
2076 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2077 -- Code for Match rule SAMPLE: SEARCH
2078 ELSIF p_rule_id=8 THEN
2079 IF NOT HZ_MATCH_RULE_8.check_staged THEN
2080 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2081 FND_MSG_PUB.ADD;
2082 RAISE FND_API.G_EXC_ERROR;
2083 END IF;
2084 HZ_MATCH_RULE_8.find_duplicate_contacts(
2085 p_rule_id,p_org_contact_id,p_party_id,
2086 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2087 -- Code for Match rule RM SEARCH RULE
2088 ELSIF p_rule_id=32 THEN
2089 IF NOT HZ_MATCH_RULE_32.check_staged THEN
2090 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2091 FND_MSG_PUB.ADD;
2092 RAISE FND_API.G_EXC_ERROR;
2093 END IF;
2094 HZ_MATCH_RULE_32.find_duplicate_contacts(
2095 p_rule_id,p_org_contact_id,p_party_id,
2096 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2097 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
2098 ELSIF p_rule_id=33 THEN
2099 IF NOT HZ_MATCH_RULE_33.check_staged THEN
2100 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2101 FND_MSG_PUB.ADD;
2102 RAISE FND_API.G_EXC_ERROR;
2103 END IF;
2104 HZ_MATCH_RULE_33.find_duplicate_contacts(
2105 p_rule_id,p_org_contact_id,p_party_id,
2106 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2107 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
2108 ELSIF p_rule_id=34 THEN
2109 IF NOT HZ_MATCH_RULE_34.check_staged THEN
2110 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2111 FND_MSG_PUB.ADD;
2112 RAISE FND_API.G_EXC_ERROR;
2113 END IF;
2114 HZ_MATCH_RULE_34.find_duplicate_contacts(
2115 p_rule_id,p_org_contact_id,p_party_id,
2116 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2117 -- Code for Match rule DL SMART SEARCH
2118 ELSIF p_rule_id=35 THEN
2119 IF NOT HZ_MATCH_RULE_35.check_staged THEN
2120 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2121 FND_MSG_PUB.ADD;
2122 RAISE FND_API.G_EXC_ERROR;
2123 END IF;
2124 HZ_MATCH_RULE_35.find_duplicate_contacts(
2125 p_rule_id,p_org_contact_id,p_party_id,
2126 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2127 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
2128 ELSIF p_rule_id=36 THEN
2129 IF NOT HZ_MATCH_RULE_36.check_staged THEN
2130 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2131 FND_MSG_PUB.ADD;
2132 RAISE FND_API.G_EXC_ERROR;
2133 END IF;
2134 HZ_MATCH_RULE_36.find_duplicate_contacts(
2135 p_rule_id,p_org_contact_id,p_party_id,
2136 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2137 -- Code for Match rule DL ADDRESS DEFAULT
2138 ELSIF p_rule_id=37 THEN
2139 IF NOT HZ_MATCH_RULE_37.check_staged THEN
2140 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2141 FND_MSG_PUB.ADD;
2142 RAISE FND_API.G_EXC_ERROR;
2143 END IF;
2144 HZ_MATCH_RULE_37.find_duplicate_contacts(
2145 p_rule_id,p_org_contact_id,p_party_id,
2146 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2147 -- Code for Match rule DL RELATIONSHIP DEFAULT
2148 ELSIF p_rule_id=38 THEN
2149 IF NOT HZ_MATCH_RULE_38.check_staged THEN
2150 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2151 FND_MSG_PUB.ADD;
2152 RAISE FND_API.G_EXC_ERROR;
2153 END IF;
2154 HZ_MATCH_RULE_38.find_duplicate_contacts(
2155 p_rule_id,p_org_contact_id,p_party_id,
2156 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2157 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
2158 ELSIF p_rule_id=39 THEN
2159 IF NOT HZ_MATCH_RULE_39.check_staged THEN
2160 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2161 FND_MSG_PUB.ADD;
2162 RAISE FND_API.G_EXC_ERROR;
2163 END IF;
2164 HZ_MATCH_RULE_39.find_duplicate_contacts(
2165 p_rule_id,p_org_contact_id,p_party_id,
2166 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2167 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
2168 ELSIF p_rule_id=40 THEN
2169 IF NOT HZ_MATCH_RULE_40.check_staged THEN
2170 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2171 FND_MSG_PUB.ADD;
2172 RAISE FND_API.G_EXC_ERROR;
2173 END IF;
2174 HZ_MATCH_RULE_40.find_duplicate_contacts(
2175 p_rule_id,p_org_contact_id,p_party_id,
2176 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2177 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
2178 ELSIF p_rule_id=41 THEN
2179 IF NOT HZ_MATCH_RULE_41.check_staged THEN
2180 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2181 FND_MSG_PUB.ADD;
2182 RAISE FND_API.G_EXC_ERROR;
2183 END IF;
2184 HZ_MATCH_RULE_41.find_duplicate_contacts(
2185 p_rule_id,p_org_contact_id,p_party_id,
2186 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2187 -- Code for Match rule SAMPLE: SEARCH EXACT
2188 ELSIF p_rule_id=42 THEN
2189 IF NOT HZ_MATCH_RULE_42.check_staged THEN
2190 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2191 FND_MSG_PUB.ADD;
2192 RAISE FND_API.G_EXC_ERROR;
2193 END IF;
2194 HZ_MATCH_RULE_42.find_duplicate_contacts(
2195 p_rule_id,p_org_contact_id,p_party_id,
2196 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2197 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
2198 ELSIF p_rule_id=48 THEN
2199 IF NOT HZ_MATCH_RULE_48.check_staged THEN
2200 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2201 FND_MSG_PUB.ADD;
2202 RAISE FND_API.G_EXC_ERROR;
2203 END IF;
2204 HZ_MATCH_RULE_48.find_duplicate_contacts(
2205 p_rule_id,p_org_contact_id,p_party_id,
2206 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2207 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
2208 ELSIF p_rule_id=50 THEN
2209 IF NOT HZ_MATCH_RULE_50.check_staged THEN
2210 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2211 FND_MSG_PUB.ADD;
2212 RAISE FND_API.G_EXC_ERROR;
2213 END IF;
2214 HZ_MATCH_RULE_50.find_duplicate_contacts(
2215 p_rule_id,p_org_contact_id,p_party_id,
2216 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2217 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
2218 ELSIF p_rule_id=51 THEN
2219 IF NOT HZ_MATCH_RULE_51.check_staged THEN
2220 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2221 FND_MSG_PUB.ADD;
2222 RAISE FND_API.G_EXC_ERROR;
2223 END IF;
2224 HZ_MATCH_RULE_51.find_duplicate_contacts(
2225 p_rule_id,p_org_contact_id,p_party_id,
2226 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2227 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
2228 ELSIF p_rule_id=52 THEN
2229 IF NOT HZ_MATCH_RULE_52.check_staged THEN
2230 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2231 FND_MSG_PUB.ADD;
2232 RAISE FND_API.G_EXC_ERROR;
2233 END IF;
2234 HZ_MATCH_RULE_52.find_duplicate_contacts(
2235 p_rule_id,p_org_contact_id,p_party_id,
2236 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2237 -- Code for Match rule CREDIT MANAGEMENT SEARCH
2238 ELSIF p_rule_id=53 THEN
2239 IF NOT HZ_MATCH_RULE_53.check_staged THEN
2240 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2241 FND_MSG_PUB.ADD;
2242 RAISE FND_API.G_EXC_ERROR;
2243 END IF;
2244 HZ_MATCH_RULE_53.find_duplicate_contacts(
2245 p_rule_id,p_org_contact_id,p_party_id,
2246 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2247 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
2248 ELSIF p_rule_id=58 THEN
2249 IF NOT HZ_MATCH_RULE_58.check_staged THEN
2250 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2251 FND_MSG_PUB.ADD;
2252 RAISE FND_API.G_EXC_ERROR;
2253 END IF;
2254 HZ_MATCH_RULE_58.find_duplicate_contacts(
2255 p_rule_id,p_org_contact_id,p_party_id,
2256 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2257 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
2258 ELSIF p_rule_id=60 THEN
2259 IF NOT HZ_MATCH_RULE_60.check_staged THEN
2260 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2261 FND_MSG_PUB.ADD;
2262 RAISE FND_API.G_EXC_ERROR;
2263 END IF;
2264 HZ_MATCH_RULE_60.find_duplicate_contacts(
2265 p_rule_id,p_org_contact_id,p_party_id,
2266 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2267 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
2268 ELSIF p_rule_id=61 THEN
2269 IF NOT HZ_MATCH_RULE_61.check_staged THEN
2270 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2271 FND_MSG_PUB.ADD;
2272 RAISE FND_API.G_EXC_ERROR;
2273 END IF;
2274 HZ_MATCH_RULE_61.find_duplicate_contacts(
2275 p_rule_id,p_org_contact_id,p_party_id,
2276 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2277 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
2278 ELSIF p_rule_id=62 THEN
2279 IF NOT HZ_MATCH_RULE_62.check_staged THEN
2280 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2281 FND_MSG_PUB.ADD;
2282 RAISE FND_API.G_EXC_ERROR;
2283 END IF;
2284 HZ_MATCH_RULE_62.find_duplicate_contacts(
2285 p_rule_id,p_org_contact_id,p_party_id,
2286 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2287 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
2288 ELSIF p_rule_id=98 THEN
2289 IF NOT HZ_MATCH_RULE_98.check_staged THEN
2290 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2291 FND_MSG_PUB.ADD;
2292 RAISE FND_API.G_EXC_ERROR;
2293 END IF;
2294 HZ_MATCH_RULE_98.find_duplicate_contacts(
2295 p_rule_id,p_org_contact_id,p_party_id,
2296 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2297 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
2298 ELSIF p_rule_id=99 THEN
2299 IF NOT HZ_MATCH_RULE_99.check_staged THEN
2300 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2301 FND_MSG_PUB.ADD;
2302 RAISE FND_API.G_EXC_ERROR;
2303 END IF;
2304 HZ_MATCH_RULE_99.find_duplicate_contacts(
2305 p_rule_id,p_org_contact_id,p_party_id,
2306 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2307 END IF;
2308 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2309 hz_utility_v2pub.debug(p_message=>'find_duplicate_contacts(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
2310 END IF;
2311 --Standard call to get message count and if count is 1, get message info
2312 FND_MSG_PUB.Count_And_Get(
2313 p_encoded => FND_API.G_FALSE,
2314 p_count => x_msg_count,
2315 p_data => x_msg_data);
2316 EXCEPTION
2317 WHEN FND_API.G_EXC_ERROR THEN
2318 x_return_status := FND_API.G_RET_STS_ERROR;
2319 FND_MSG_PUB.Count_And_Get(
2320 p_encoded => FND_API.G_FALSE,
2321 p_count => x_msg_count,
2322 p_data => x_msg_data);
2323 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2324 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2325 FND_MSG_PUB.Count_And_Get(
2326 p_encoded => FND_API.G_FALSE,
2327 p_count => x_msg_count,
2328 p_data => x_msg_data);
2329
2330 WHEN OTHERS THEN
2331 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2332 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
2333 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
2334 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2335 FND_MSG_PUB.ADD;
2336
2337 FND_MSG_PUB.Count_And_Get(
2338 p_encoded => FND_API.G_FALSE,
2339 p_count => x_msg_count,
2340 p_data => x_msg_data);
2341 END;
2342
2343 PROCEDURE find_duplicate_contact_points (
2344 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
2345 p_rule_id IN NUMBER,
2346 p_contact_point_id IN NUMBER,
2347 p_party_id IN NUMBER,
2348 p_restrict_sql IN VARCHAR2,
2349 p_match_type IN VARCHAR2,
2350 x_search_ctx_id OUT NUMBER,
2351 x_num_matches OUT NUMBER,
2352 x_return_status OUT VARCHAR2,
2353 x_msg_count OUT NUMBER,
2354 x_msg_data OUT VARCHAR2
2355 ) IS
2356 CURSOR c_match_rule IS
2357 SELECT COMPILATION_FLAG
2358 FROM HZ_MATCH_RULES_VL
2359 WHERE MATCH_RULE_ID = p_rule_id;
2360 l_cmp_flag VARCHAR2(1);
2361 BEGIN
2362 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2363 hz_utility_v2pub.debug(p_message=>'find_duplicate_contact_points(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
2364 END IF;
2365 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2366 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
2367 END IF;
2368
2369 -- Initialize return status and message stack
2370 x_return_status := FND_API.G_RET_STS_SUCCESS;
2371 IF FND_API.to_Boolean(p_init_msg_list) THEN
2372 FND_MSG_PUB.initialize;
2373 END IF;
2374
2375 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2376 -- Find the match rule
2377 null;
2378
2379 -- No MATCH RULE FOUND
2380 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2381 FND_MSG_PUB.ADD;
2382 RAISE FND_API.G_EXC_ERROR;
2383 END IF;
2384 OPEN c_match_rule;
2385 FETCH c_match_rule INTO l_cmp_flag;
2386 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2387 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2388 FND_MSG_PUB.ADD;
2389 RAISE FND_API.G_EXC_ERROR;
2390 END IF;
2391 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2392 IF p_rule_id=2 THEN
2393 IF NOT HZ_MATCH_RULE_2.check_staged THEN
2394 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2395 FND_MSG_PUB.ADD;
2396 RAISE FND_API.G_EXC_ERROR;
2397 END IF;
2398 HZ_MATCH_RULE_2.find_duplicate_contact_points(
2399 p_rule_id,p_contact_point_id,p_party_id,
2400 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2401 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
2402 ELSIF p_rule_id=3 THEN
2403 IF NOT HZ_MATCH_RULE_3.check_staged THEN
2404 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2405 FND_MSG_PUB.ADD;
2406 RAISE FND_API.G_EXC_ERROR;
2407 END IF;
2408 HZ_MATCH_RULE_3.find_duplicate_contact_points(
2409 p_rule_id,p_contact_point_id,p_party_id,
2410 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2411 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
2412 ELSIF p_rule_id=4 THEN
2413 IF NOT HZ_MATCH_RULE_4.check_staged THEN
2414 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2415 FND_MSG_PUB.ADD;
2416 RAISE FND_API.G_EXC_ERROR;
2417 END IF;
2418 HZ_MATCH_RULE_4.find_duplicate_contact_points(
2419 p_rule_id,p_contact_point_id,p_party_id,
2420 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2421 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
2422 ELSIF p_rule_id=5 THEN
2423 IF NOT HZ_MATCH_RULE_5.check_staged THEN
2424 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2425 FND_MSG_PUB.ADD;
2426 RAISE FND_API.G_EXC_ERROR;
2427 END IF;
2428 HZ_MATCH_RULE_5.find_duplicate_contact_points(
2429 p_rule_id,p_contact_point_id,p_party_id,
2430 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2431 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
2432 ELSIF p_rule_id=6 THEN
2433 IF NOT HZ_MATCH_RULE_6.check_staged THEN
2434 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2435 FND_MSG_PUB.ADD;
2436 RAISE FND_API.G_EXC_ERROR;
2437 END IF;
2438 HZ_MATCH_RULE_6.find_duplicate_contact_points(
2439 p_rule_id,p_contact_point_id,p_party_id,
2440 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2441 -- Code for Match rule SAMPLE: SIMILAR_PERSON
2442 ELSIF p_rule_id=7 THEN
2443 IF NOT HZ_MATCH_RULE_7.check_staged THEN
2444 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2445 FND_MSG_PUB.ADD;
2446 RAISE FND_API.G_EXC_ERROR;
2447 END IF;
2448 HZ_MATCH_RULE_7.find_duplicate_contact_points(
2449 p_rule_id,p_contact_point_id,p_party_id,
2450 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2451 -- Code for Match rule SAMPLE: SEARCH
2452 ELSIF p_rule_id=8 THEN
2453 IF NOT HZ_MATCH_RULE_8.check_staged THEN
2454 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2455 FND_MSG_PUB.ADD;
2456 RAISE FND_API.G_EXC_ERROR;
2457 END IF;
2458 HZ_MATCH_RULE_8.find_duplicate_contact_points(
2459 p_rule_id,p_contact_point_id,p_party_id,
2460 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2461 -- Code for Match rule RM SEARCH RULE
2462 ELSIF p_rule_id=32 THEN
2463 IF NOT HZ_MATCH_RULE_32.check_staged THEN
2464 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2465 FND_MSG_PUB.ADD;
2466 RAISE FND_API.G_EXC_ERROR;
2467 END IF;
2468 HZ_MATCH_RULE_32.find_duplicate_contact_points(
2469 p_rule_id,p_contact_point_id,p_party_id,
2470 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2471 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
2472 ELSIF p_rule_id=33 THEN
2473 IF NOT HZ_MATCH_RULE_33.check_staged THEN
2474 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2475 FND_MSG_PUB.ADD;
2476 RAISE FND_API.G_EXC_ERROR;
2477 END IF;
2478 HZ_MATCH_RULE_33.find_duplicate_contact_points(
2479 p_rule_id,p_contact_point_id,p_party_id,
2480 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2481 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
2482 ELSIF p_rule_id=34 THEN
2483 IF NOT HZ_MATCH_RULE_34.check_staged THEN
2484 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2485 FND_MSG_PUB.ADD;
2486 RAISE FND_API.G_EXC_ERROR;
2487 END IF;
2488 HZ_MATCH_RULE_34.find_duplicate_contact_points(
2489 p_rule_id,p_contact_point_id,p_party_id,
2490 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2491 -- Code for Match rule DL SMART SEARCH
2492 ELSIF p_rule_id=35 THEN
2493 IF NOT HZ_MATCH_RULE_35.check_staged THEN
2494 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2495 FND_MSG_PUB.ADD;
2496 RAISE FND_API.G_EXC_ERROR;
2497 END IF;
2498 HZ_MATCH_RULE_35.find_duplicate_contact_points(
2499 p_rule_id,p_contact_point_id,p_party_id,
2500 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2501 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
2502 ELSIF p_rule_id=36 THEN
2503 IF NOT HZ_MATCH_RULE_36.check_staged THEN
2504 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2505 FND_MSG_PUB.ADD;
2506 RAISE FND_API.G_EXC_ERROR;
2507 END IF;
2508 HZ_MATCH_RULE_36.find_duplicate_contact_points(
2509 p_rule_id,p_contact_point_id,p_party_id,
2510 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2511 -- Code for Match rule DL ADDRESS DEFAULT
2512 ELSIF p_rule_id=37 THEN
2513 IF NOT HZ_MATCH_RULE_37.check_staged THEN
2514 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2515 FND_MSG_PUB.ADD;
2516 RAISE FND_API.G_EXC_ERROR;
2517 END IF;
2518 HZ_MATCH_RULE_37.find_duplicate_contact_points(
2519 p_rule_id,p_contact_point_id,p_party_id,
2520 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2521 -- Code for Match rule DL RELATIONSHIP DEFAULT
2522 ELSIF p_rule_id=38 THEN
2523 IF NOT HZ_MATCH_RULE_38.check_staged THEN
2524 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2525 FND_MSG_PUB.ADD;
2526 RAISE FND_API.G_EXC_ERROR;
2527 END IF;
2528 HZ_MATCH_RULE_38.find_duplicate_contact_points(
2529 p_rule_id,p_contact_point_id,p_party_id,
2530 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2531 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
2532 ELSIF p_rule_id=39 THEN
2533 IF NOT HZ_MATCH_RULE_39.check_staged THEN
2534 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2535 FND_MSG_PUB.ADD;
2536 RAISE FND_API.G_EXC_ERROR;
2537 END IF;
2538 HZ_MATCH_RULE_39.find_duplicate_contact_points(
2539 p_rule_id,p_contact_point_id,p_party_id,
2540 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2541 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
2542 ELSIF p_rule_id=40 THEN
2543 IF NOT HZ_MATCH_RULE_40.check_staged THEN
2544 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2545 FND_MSG_PUB.ADD;
2546 RAISE FND_API.G_EXC_ERROR;
2547 END IF;
2548 HZ_MATCH_RULE_40.find_duplicate_contact_points(
2549 p_rule_id,p_contact_point_id,p_party_id,
2550 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2551 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
2552 ELSIF p_rule_id=41 THEN
2553 IF NOT HZ_MATCH_RULE_41.check_staged THEN
2554 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2555 FND_MSG_PUB.ADD;
2556 RAISE FND_API.G_EXC_ERROR;
2557 END IF;
2558 HZ_MATCH_RULE_41.find_duplicate_contact_points(
2559 p_rule_id,p_contact_point_id,p_party_id,
2560 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2561 -- Code for Match rule SAMPLE: SEARCH EXACT
2562 ELSIF p_rule_id=42 THEN
2563 IF NOT HZ_MATCH_RULE_42.check_staged THEN
2564 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2565 FND_MSG_PUB.ADD;
2566 RAISE FND_API.G_EXC_ERROR;
2567 END IF;
2568 HZ_MATCH_RULE_42.find_duplicate_contact_points(
2569 p_rule_id,p_contact_point_id,p_party_id,
2570 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2571 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
2572 ELSIF p_rule_id=48 THEN
2573 IF NOT HZ_MATCH_RULE_48.check_staged THEN
2574 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2575 FND_MSG_PUB.ADD;
2576 RAISE FND_API.G_EXC_ERROR;
2577 END IF;
2578 HZ_MATCH_RULE_48.find_duplicate_contact_points(
2579 p_rule_id,p_contact_point_id,p_party_id,
2580 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2581 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
2582 ELSIF p_rule_id=50 THEN
2583 IF NOT HZ_MATCH_RULE_50.check_staged THEN
2584 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2585 FND_MSG_PUB.ADD;
2586 RAISE FND_API.G_EXC_ERROR;
2587 END IF;
2588 HZ_MATCH_RULE_50.find_duplicate_contact_points(
2589 p_rule_id,p_contact_point_id,p_party_id,
2590 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2591 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
2592 ELSIF p_rule_id=51 THEN
2593 IF NOT HZ_MATCH_RULE_51.check_staged THEN
2594 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2595 FND_MSG_PUB.ADD;
2596 RAISE FND_API.G_EXC_ERROR;
2597 END IF;
2598 HZ_MATCH_RULE_51.find_duplicate_contact_points(
2599 p_rule_id,p_contact_point_id,p_party_id,
2600 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2601 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
2602 ELSIF p_rule_id=52 THEN
2603 IF NOT HZ_MATCH_RULE_52.check_staged THEN
2604 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2605 FND_MSG_PUB.ADD;
2606 RAISE FND_API.G_EXC_ERROR;
2607 END IF;
2608 HZ_MATCH_RULE_52.find_duplicate_contact_points(
2609 p_rule_id,p_contact_point_id,p_party_id,
2610 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2611 -- Code for Match rule CREDIT MANAGEMENT SEARCH
2612 ELSIF p_rule_id=53 THEN
2613 IF NOT HZ_MATCH_RULE_53.check_staged THEN
2614 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2615 FND_MSG_PUB.ADD;
2616 RAISE FND_API.G_EXC_ERROR;
2617 END IF;
2618 HZ_MATCH_RULE_53.find_duplicate_contact_points(
2619 p_rule_id,p_contact_point_id,p_party_id,
2620 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2621 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
2622 ELSIF p_rule_id=58 THEN
2623 IF NOT HZ_MATCH_RULE_58.check_staged THEN
2624 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2625 FND_MSG_PUB.ADD;
2626 RAISE FND_API.G_EXC_ERROR;
2627 END IF;
2628 HZ_MATCH_RULE_58.find_duplicate_contact_points(
2629 p_rule_id,p_contact_point_id,p_party_id,
2630 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2631 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
2632 ELSIF p_rule_id=60 THEN
2633 IF NOT HZ_MATCH_RULE_60.check_staged THEN
2634 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2635 FND_MSG_PUB.ADD;
2636 RAISE FND_API.G_EXC_ERROR;
2637 END IF;
2638 HZ_MATCH_RULE_60.find_duplicate_contact_points(
2639 p_rule_id,p_contact_point_id,p_party_id,
2640 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2641 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
2642 ELSIF p_rule_id=61 THEN
2643 IF NOT HZ_MATCH_RULE_61.check_staged THEN
2644 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2645 FND_MSG_PUB.ADD;
2646 RAISE FND_API.G_EXC_ERROR;
2647 END IF;
2648 HZ_MATCH_RULE_61.find_duplicate_contact_points(
2649 p_rule_id,p_contact_point_id,p_party_id,
2650 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2651 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
2652 ELSIF p_rule_id=62 THEN
2653 IF NOT HZ_MATCH_RULE_62.check_staged THEN
2654 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2655 FND_MSG_PUB.ADD;
2656 RAISE FND_API.G_EXC_ERROR;
2657 END IF;
2658 HZ_MATCH_RULE_62.find_duplicate_contact_points(
2659 p_rule_id,p_contact_point_id,p_party_id,
2660 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2661 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
2662 ELSIF p_rule_id=98 THEN
2663 IF NOT HZ_MATCH_RULE_98.check_staged THEN
2664 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2665 FND_MSG_PUB.ADD;
2666 RAISE FND_API.G_EXC_ERROR;
2667 END IF;
2668 HZ_MATCH_RULE_98.find_duplicate_contact_points(
2669 p_rule_id,p_contact_point_id,p_party_id,
2670 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2671 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
2672 ELSIF p_rule_id=99 THEN
2673 IF NOT HZ_MATCH_RULE_99.check_staged THEN
2674 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2675 FND_MSG_PUB.ADD;
2676 RAISE FND_API.G_EXC_ERROR;
2677 END IF;
2678 HZ_MATCH_RULE_99.find_duplicate_contact_points(
2679 p_rule_id,p_contact_point_id,p_party_id,
2680 p_restrict_sql,p_match_type,x_search_ctx_id,x_num_matches);
2681 END IF;
2682 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2683 hz_utility_v2pub.debug(p_message=>'find_duplicate_contact_points(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
2684 END IF;
2685 --Standard call to get message count and if count is 1, get message info
2686 FND_MSG_PUB.Count_And_Get(
2687 p_encoded => FND_API.G_FALSE,
2688 p_count => x_msg_count,
2689 p_data => x_msg_data);
2690 EXCEPTION
2691 WHEN FND_API.G_EXC_ERROR THEN
2692 x_return_status := FND_API.G_RET_STS_ERROR;
2693 FND_MSG_PUB.Count_And_Get(
2694 p_encoded => FND_API.G_FALSE,
2695 p_count => x_msg_count,
2696 p_data => x_msg_data);
2697 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2698 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2699 FND_MSG_PUB.Count_And_Get(
2700 p_encoded => FND_API.G_FALSE,
2701 p_count => x_msg_count,
2702 p_data => x_msg_data);
2703
2704 WHEN OTHERS THEN
2705 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2706 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
2707 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
2708 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2709 FND_MSG_PUB.ADD;
2710
2711 FND_MSG_PUB.Count_And_Get(
2712 p_encoded => FND_API.G_FALSE,
2713 p_count => x_msg_count,
2714 p_data => x_msg_data);
2715 END;
2716
2717
2718 PROCEDURE find_parties_dynamic (
2719 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
2720 p_rule_id IN NUMBER,
2721 p_attrib_id1 IN NUMBER,
2722 p_attrib_id2 IN NUMBER,
2723 p_attrib_id3 IN NUMBER,
2724 p_attrib_id4 IN NUMBER,
2725 p_attrib_id5 IN NUMBER,
2726 p_attrib_id6 IN NUMBER,
2727 p_attrib_id7 IN NUMBER,
2728 p_attrib_id8 IN NUMBER,
2729 p_attrib_id9 IN NUMBER,
2730 p_attrib_id10 IN NUMBER,
2731 p_attrib_id11 IN NUMBER,
2732 p_attrib_id12 IN NUMBER,
2733 p_attrib_id13 IN NUMBER,
2734 p_attrib_id14 IN NUMBER,
2735 p_attrib_id15 IN NUMBER,
2736 p_attrib_id16 IN NUMBER,
2737 p_attrib_id17 IN NUMBER,
2738 p_attrib_id18 IN NUMBER,
2739 p_attrib_id19 IN NUMBER,
2740 p_attrib_id20 IN NUMBER,
2741 p_attrib_val1 IN VARCHAR2,
2742 p_attrib_val2 IN VARCHAR2,
2743 p_attrib_val3 IN VARCHAR2,
2744 p_attrib_val4 IN VARCHAR2,
2745 p_attrib_val5 IN VARCHAR2,
2746 p_attrib_val6 IN VARCHAR2,
2747 p_attrib_val7 IN VARCHAR2,
2748 p_attrib_val8 IN VARCHAR2,
2749 p_attrib_val9 IN VARCHAR2,
2750 p_attrib_val10 IN VARCHAR2,
2751 p_attrib_val11 IN VARCHAR2,
2752 p_attrib_val12 IN VARCHAR2,
2753 p_attrib_val13 IN VARCHAR2,
2754 p_attrib_val14 IN VARCHAR2,
2755 p_attrib_val15 IN VARCHAR2,
2756 p_attrib_val16 IN VARCHAR2,
2757 p_attrib_val17 IN VARCHAR2,
2758 p_attrib_val18 IN VARCHAR2,
2759 p_attrib_val19 IN VARCHAR2,
2760 p_attrib_val20 IN VARCHAR2,
2761 p_restrict_sql IN VARCHAR2,
2762 p_match_type IN VARCHAR2,
2763 p_search_merged IN VARCHAR2,
2764 x_search_ctx_id OUT NUMBER,
2765 x_num_matches OUT NUMBER,
2766 x_return_status OUT VARCHAR2,
2767 x_msg_count OUT NUMBER,
2768 x_msg_data OUT VARCHAR2
2769 ) IS
2770 CURSOR c_match_rule IS
2771 SELECT COMPILATION_FLAG
2772 FROM HZ_MATCH_RULES_VL
2773 WHERE MATCH_RULE_ID = p_rule_id;
2774 l_cmp_flag VARCHAR2(1);
2775 BEGIN
2776 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2777 hz_utility_v2pub.debug(p_message=>'find_parties_dynamic(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
2778 END IF;
2779 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2780 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
2781 END IF;
2782
2783 -- Initialize return status and message stack
2784 x_return_status := FND_API.G_RET_STS_SUCCESS;
2785 IF FND_API.to_Boolean(p_init_msg_list) THEN
2786 FND_MSG_PUB.initialize;
2787 END IF;
2788
2789 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
2790 -- Find the match rule
2791 null;
2792
2793 -- No MATCH RULE FOUND
2794 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
2795 FND_MSG_PUB.ADD;
2796 RAISE FND_API.G_EXC_ERROR;
2797 END IF;
2798 OPEN c_match_rule;
2799 FETCH c_match_rule INTO l_cmp_flag;
2800 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
2801 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
2802 FND_MSG_PUB.ADD;
2803 RAISE FND_API.G_EXC_ERROR;
2804 END IF;
2805 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
2806 IF p_rule_id=2 THEN
2807 IF NOT HZ_MATCH_RULE_2.check_staged THEN
2808 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2809 FND_MSG_PUB.ADD;
2810 RAISE FND_API.G_EXC_ERROR;
2811 END IF;
2812 HZ_MATCH_RULE_2.find_parties_dynamic(
2813 p_rule_id,
2814 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2815 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2816 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2817 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2818 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2819 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2820 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2821 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2822 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2823 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
2824 ELSIF p_rule_id=3 THEN
2825 IF NOT HZ_MATCH_RULE_3.check_staged THEN
2826 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2827 FND_MSG_PUB.ADD;
2828 RAISE FND_API.G_EXC_ERROR;
2829 END IF;
2830 HZ_MATCH_RULE_3.find_parties_dynamic(
2831 p_rule_id,
2832 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2833 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2834 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2835 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2836 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2837 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2838 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2839 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2840 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2841 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
2842 ELSIF p_rule_id=4 THEN
2843 IF NOT HZ_MATCH_RULE_4.check_staged THEN
2844 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2845 FND_MSG_PUB.ADD;
2846 RAISE FND_API.G_EXC_ERROR;
2847 END IF;
2848 HZ_MATCH_RULE_4.find_parties_dynamic(
2849 p_rule_id,
2850 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2851 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2852 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2853 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2854 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2855 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2856 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2857 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2858 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2859 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
2860 ELSIF p_rule_id=5 THEN
2861 IF NOT HZ_MATCH_RULE_5.check_staged THEN
2862 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2863 FND_MSG_PUB.ADD;
2864 RAISE FND_API.G_EXC_ERROR;
2865 END IF;
2866 HZ_MATCH_RULE_5.find_parties_dynamic(
2867 p_rule_id,
2868 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2869 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2870 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2871 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2872 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2873 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2874 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2875 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2876 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2877 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
2878 ELSIF p_rule_id=6 THEN
2879 IF NOT HZ_MATCH_RULE_6.check_staged THEN
2880 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2881 FND_MSG_PUB.ADD;
2882 RAISE FND_API.G_EXC_ERROR;
2883 END IF;
2884 HZ_MATCH_RULE_6.find_parties_dynamic(
2885 p_rule_id,
2886 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2887 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2888 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2889 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2890 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2891 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2892 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2893 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2894 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2895 -- Code for Match rule SAMPLE: SIMILAR_PERSON
2896 ELSIF p_rule_id=7 THEN
2897 IF NOT HZ_MATCH_RULE_7.check_staged THEN
2898 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2899 FND_MSG_PUB.ADD;
2900 RAISE FND_API.G_EXC_ERROR;
2901 END IF;
2902 HZ_MATCH_RULE_7.find_parties_dynamic(
2903 p_rule_id,
2904 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2905 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2906 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2907 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2908 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2909 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2910 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2911 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2912 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2913 -- Code for Match rule SAMPLE: SEARCH
2914 ELSIF p_rule_id=8 THEN
2915 IF NOT HZ_MATCH_RULE_8.check_staged THEN
2916 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2917 FND_MSG_PUB.ADD;
2918 RAISE FND_API.G_EXC_ERROR;
2919 END IF;
2920 HZ_MATCH_RULE_8.find_parties_dynamic(
2921 p_rule_id,
2922 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2923 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2924 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2925 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2926 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2927 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2928 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2929 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2930 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2931 -- Code for Match rule RM SEARCH RULE
2932 ELSIF p_rule_id=32 THEN
2933 IF NOT HZ_MATCH_RULE_32.check_staged THEN
2934 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2935 FND_MSG_PUB.ADD;
2936 RAISE FND_API.G_EXC_ERROR;
2937 END IF;
2938 HZ_MATCH_RULE_32.find_parties_dynamic(
2939 p_rule_id,
2940 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2941 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2942 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2943 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2944 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2945 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2946 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2947 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2948 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2949 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
2950 ELSIF p_rule_id=33 THEN
2951 IF NOT HZ_MATCH_RULE_33.check_staged THEN
2952 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2953 FND_MSG_PUB.ADD;
2954 RAISE FND_API.G_EXC_ERROR;
2955 END IF;
2956 HZ_MATCH_RULE_33.find_parties_dynamic(
2957 p_rule_id,
2958 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2959 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2960 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2961 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2962 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2963 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2964 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2965 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2966 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2967 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
2968 ELSIF p_rule_id=34 THEN
2969 IF NOT HZ_MATCH_RULE_34.check_staged THEN
2970 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2971 FND_MSG_PUB.ADD;
2972 RAISE FND_API.G_EXC_ERROR;
2973 END IF;
2974 HZ_MATCH_RULE_34.find_parties_dynamic(
2975 p_rule_id,
2976 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2977 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2978 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2979 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2980 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2981 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
2982 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
2983 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
2984 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
2985 -- Code for Match rule DL SMART SEARCH
2986 ELSIF p_rule_id=35 THEN
2987 IF NOT HZ_MATCH_RULE_35.check_staged THEN
2988 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
2989 FND_MSG_PUB.ADD;
2990 RAISE FND_API.G_EXC_ERROR;
2991 END IF;
2992 HZ_MATCH_RULE_35.find_parties_dynamic(
2993 p_rule_id,
2994 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
2995 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
2996 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
2997 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
2998 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
2999 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3000 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3001 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3002 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3003 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
3004 ELSIF p_rule_id=36 THEN
3005 IF NOT HZ_MATCH_RULE_36.check_staged THEN
3006 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3007 FND_MSG_PUB.ADD;
3008 RAISE FND_API.G_EXC_ERROR;
3009 END IF;
3010 HZ_MATCH_RULE_36.find_parties_dynamic(
3011 p_rule_id,
3012 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3013 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3014 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3015 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3016 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3017 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3018 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3019 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3020 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3021 -- Code for Match rule DL ADDRESS DEFAULT
3022 ELSIF p_rule_id=37 THEN
3023 IF NOT HZ_MATCH_RULE_37.check_staged THEN
3024 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3025 FND_MSG_PUB.ADD;
3026 RAISE FND_API.G_EXC_ERROR;
3027 END IF;
3028 HZ_MATCH_RULE_37.find_parties_dynamic(
3029 p_rule_id,
3030 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3031 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3032 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3033 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3034 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3035 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3036 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3037 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3038 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3039 -- Code for Match rule DL RELATIONSHIP DEFAULT
3040 ELSIF p_rule_id=38 THEN
3041 IF NOT HZ_MATCH_RULE_38.check_staged THEN
3042 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3043 FND_MSG_PUB.ADD;
3044 RAISE FND_API.G_EXC_ERROR;
3045 END IF;
3046 HZ_MATCH_RULE_38.find_parties_dynamic(
3047 p_rule_id,
3048 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3049 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3050 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3051 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3052 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3053 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3054 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3055 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3056 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3057 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
3058 ELSIF p_rule_id=39 THEN
3059 IF NOT HZ_MATCH_RULE_39.check_staged THEN
3060 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3061 FND_MSG_PUB.ADD;
3062 RAISE FND_API.G_EXC_ERROR;
3063 END IF;
3064 HZ_MATCH_RULE_39.find_parties_dynamic(
3065 p_rule_id,
3066 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3067 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3068 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3069 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3070 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3071 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3072 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3073 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3074 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3075 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
3076 ELSIF p_rule_id=40 THEN
3077 IF NOT HZ_MATCH_RULE_40.check_staged THEN
3078 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3079 FND_MSG_PUB.ADD;
3080 RAISE FND_API.G_EXC_ERROR;
3081 END IF;
3082 HZ_MATCH_RULE_40.find_parties_dynamic(
3083 p_rule_id,
3084 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3085 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3086 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3087 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3088 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3089 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3090 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3091 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3092 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3093 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
3094 ELSIF p_rule_id=41 THEN
3095 IF NOT HZ_MATCH_RULE_41.check_staged THEN
3096 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3097 FND_MSG_PUB.ADD;
3098 RAISE FND_API.G_EXC_ERROR;
3099 END IF;
3100 HZ_MATCH_RULE_41.find_parties_dynamic(
3101 p_rule_id,
3102 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3103 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3104 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3105 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3106 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3107 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3108 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3109 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3110 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3111 -- Code for Match rule SAMPLE: SEARCH EXACT
3112 ELSIF p_rule_id=42 THEN
3113 IF NOT HZ_MATCH_RULE_42.check_staged THEN
3114 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3115 FND_MSG_PUB.ADD;
3116 RAISE FND_API.G_EXC_ERROR;
3117 END IF;
3118 HZ_MATCH_RULE_42.find_parties_dynamic(
3119 p_rule_id,
3120 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3121 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3122 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3123 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3124 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3125 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3126 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3127 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3128 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3129 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
3130 ELSIF p_rule_id=48 THEN
3131 IF NOT HZ_MATCH_RULE_48.check_staged THEN
3132 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3133 FND_MSG_PUB.ADD;
3134 RAISE FND_API.G_EXC_ERROR;
3135 END IF;
3136 HZ_MATCH_RULE_48.find_parties_dynamic(
3137 p_rule_id,
3138 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3139 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3140 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3141 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3142 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3143 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3144 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3145 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3146 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3147 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
3148 ELSIF p_rule_id=50 THEN
3149 IF NOT HZ_MATCH_RULE_50.check_staged THEN
3150 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3151 FND_MSG_PUB.ADD;
3152 RAISE FND_API.G_EXC_ERROR;
3153 END IF;
3154 HZ_MATCH_RULE_50.find_parties_dynamic(
3155 p_rule_id,
3156 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3157 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3158 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3159 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3160 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3161 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3162 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3163 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3164 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3165 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
3166 ELSIF p_rule_id=51 THEN
3167 IF NOT HZ_MATCH_RULE_51.check_staged THEN
3168 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3169 FND_MSG_PUB.ADD;
3170 RAISE FND_API.G_EXC_ERROR;
3171 END IF;
3172 HZ_MATCH_RULE_51.find_parties_dynamic(
3173 p_rule_id,
3174 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3175 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3176 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3177 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3178 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3179 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3180 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3181 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3182 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3183 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
3184 ELSIF p_rule_id=52 THEN
3185 IF NOT HZ_MATCH_RULE_52.check_staged THEN
3186 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3187 FND_MSG_PUB.ADD;
3188 RAISE FND_API.G_EXC_ERROR;
3189 END IF;
3190 HZ_MATCH_RULE_52.find_parties_dynamic(
3191 p_rule_id,
3192 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3193 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3194 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3195 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3196 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3197 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3198 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3199 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3200 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3201 -- Code for Match rule CREDIT MANAGEMENT SEARCH
3202 ELSIF p_rule_id=53 THEN
3203 IF NOT HZ_MATCH_RULE_53.check_staged THEN
3204 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3205 FND_MSG_PUB.ADD;
3206 RAISE FND_API.G_EXC_ERROR;
3207 END IF;
3208 HZ_MATCH_RULE_53.find_parties_dynamic(
3209 p_rule_id,
3210 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3211 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3212 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3213 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3214 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3215 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3216 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3217 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3218 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3219 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
3220 ELSIF p_rule_id=58 THEN
3221 IF NOT HZ_MATCH_RULE_58.check_staged THEN
3222 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3223 FND_MSG_PUB.ADD;
3224 RAISE FND_API.G_EXC_ERROR;
3225 END IF;
3226 HZ_MATCH_RULE_58.find_parties_dynamic(
3227 p_rule_id,
3228 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3229 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3230 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3231 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3232 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3233 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3234 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3235 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3236 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3237 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
3238 ELSIF p_rule_id=60 THEN
3239 IF NOT HZ_MATCH_RULE_60.check_staged THEN
3240 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3241 FND_MSG_PUB.ADD;
3242 RAISE FND_API.G_EXC_ERROR;
3243 END IF;
3244 HZ_MATCH_RULE_60.find_parties_dynamic(
3245 p_rule_id,
3246 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3247 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3248 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3249 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3250 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3251 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3252 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3253 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3254 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3255 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
3256 ELSIF p_rule_id=61 THEN
3257 IF NOT HZ_MATCH_RULE_61.check_staged THEN
3258 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3259 FND_MSG_PUB.ADD;
3260 RAISE FND_API.G_EXC_ERROR;
3261 END IF;
3262 HZ_MATCH_RULE_61.find_parties_dynamic(
3263 p_rule_id,
3264 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3265 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3266 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3267 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3268 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3269 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3270 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3271 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3272 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3273 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
3274 ELSIF p_rule_id=62 THEN
3275 IF NOT HZ_MATCH_RULE_62.check_staged THEN
3276 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3277 FND_MSG_PUB.ADD;
3278 RAISE FND_API.G_EXC_ERROR;
3279 END IF;
3280 HZ_MATCH_RULE_62.find_parties_dynamic(
3281 p_rule_id,
3282 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3283 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3284 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3285 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3286 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3287 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3288 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3289 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3290 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3291 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
3292 ELSIF p_rule_id=98 THEN
3293 IF NOT HZ_MATCH_RULE_98.check_staged THEN
3294 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3295 FND_MSG_PUB.ADD;
3296 RAISE FND_API.G_EXC_ERROR;
3297 END IF;
3298 HZ_MATCH_RULE_98.find_parties_dynamic(
3299 p_rule_id,
3300 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3301 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3302 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3303 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3304 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3305 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3306 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3307 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3308 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3309 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
3310 ELSIF p_rule_id=99 THEN
3311 IF NOT HZ_MATCH_RULE_99.check_staged THEN
3312 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3313 FND_MSG_PUB.ADD;
3314 RAISE FND_API.G_EXC_ERROR;
3315 END IF;
3316 HZ_MATCH_RULE_99.find_parties_dynamic(
3317 p_rule_id,
3318 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3319 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3320 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3321 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3322 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3323 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3324 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3325 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3326 p_restrict_sql,p_match_type,p_search_merged,x_search_ctx_id,x_num_matches);
3327 END IF;
3328 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3329 hz_utility_v2pub.debug(p_message=>'find_parties_dynamic(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
3330 END IF;
3331 --Standard call to get message count and if count is 1, get message info
3332 FND_MSG_PUB.Count_And_Get(
3333 p_encoded => FND_API.G_FALSE,
3334 p_count => x_msg_count,
3335 p_data => x_msg_data);
3336 EXCEPTION
3337 WHEN FND_API.G_EXC_ERROR THEN
3338 x_return_status := FND_API.G_RET_STS_ERROR;
3339 FND_MSG_PUB.Count_And_Get(
3340 p_encoded => FND_API.G_FALSE,
3341 p_count => x_msg_count,
3342 p_data => x_msg_data);
3343 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3344 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3345 FND_MSG_PUB.Count_And_Get(
3346 p_encoded => FND_API.G_FALSE,
3347 p_count => x_msg_count,
3348 p_data => x_msg_data);
3349
3350 WHEN OTHERS THEN
3351 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3352 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
3353 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
3354 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3355 FND_MSG_PUB.ADD;
3356
3357 FND_MSG_PUB.Count_And_Get(
3358 p_encoded => FND_API.G_FALSE,
3359 p_count => x_msg_count,
3360 p_data => x_msg_data);
3361 END;
3362
3363 PROCEDURE call_api_dynamic (
3364 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
3365 p_rule_id IN NUMBER,
3366 p_attrib_id1 IN NUMBER,
3367 p_attrib_id2 IN NUMBER,
3368 p_attrib_id3 IN NUMBER,
3369 p_attrib_id4 IN NUMBER,
3370 p_attrib_id5 IN NUMBER,
3371 p_attrib_id6 IN NUMBER,
3372 p_attrib_id7 IN NUMBER,
3373 p_attrib_id8 IN NUMBER,
3374 p_attrib_id9 IN NUMBER,
3375 p_attrib_id10 IN NUMBER,
3376 p_attrib_id11 IN NUMBER,
3377 p_attrib_id12 IN NUMBER,
3378 p_attrib_id13 IN NUMBER,
3379 p_attrib_id14 IN NUMBER,
3380 p_attrib_id15 IN NUMBER,
3381 p_attrib_id16 IN NUMBER,
3382 p_attrib_id17 IN NUMBER,
3383 p_attrib_id18 IN NUMBER,
3384 p_attrib_id19 IN NUMBER,
3385 p_attrib_id20 IN NUMBER,
3386 p_attrib_val1 IN VARCHAR2,
3387 p_attrib_val2 IN VARCHAR2,
3388 p_attrib_val3 IN VARCHAR2,
3389 p_attrib_val4 IN VARCHAR2,
3390 p_attrib_val5 IN VARCHAR2,
3391 p_attrib_val6 IN VARCHAR2,
3392 p_attrib_val7 IN VARCHAR2,
3393 p_attrib_val8 IN VARCHAR2,
3394 p_attrib_val9 IN VARCHAR2,
3395 p_attrib_val10 IN VARCHAR2,
3396 p_attrib_val11 IN VARCHAR2,
3397 p_attrib_val12 IN VARCHAR2,
3398 p_attrib_val13 IN VARCHAR2,
3399 p_attrib_val14 IN VARCHAR2,
3400 p_attrib_val15 IN VARCHAR2,
3401 p_attrib_val16 IN VARCHAR2,
3402 p_attrib_val17 IN VARCHAR2,
3403 p_attrib_val18 IN VARCHAR2,
3404 p_attrib_val19 IN VARCHAR2,
3405 p_attrib_val20 IN VARCHAR2,
3406 p_restrict_sql IN VARCHAR2,
3407 p_api_name IN VARCHAR2,
3408 p_match_type IN VARCHAR2,
3409 p_party_id IN NUMBER,
3410 p_search_merged IN VARCHAR2,
3411 x_search_ctx_id OUT NUMBER,
3412 x_num_matches OUT NUMBER,
3413 x_return_status OUT VARCHAR2,
3414 x_msg_count OUT NUMBER,
3415 x_msg_data OUT VARCHAR2
3416 ) IS
3417 CURSOR c_match_rule IS
3418 SELECT COMPILATION_FLAG
3419 FROM HZ_MATCH_RULES_VL
3420 WHERE MATCH_RULE_ID = p_rule_id;
3421 l_cmp_flag VARCHAR2(1);
3422 BEGIN
3423 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3424 hz_utility_v2pub.debug(p_message=>'find_parties_dynamic(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
3425 END IF;
3426 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
3427 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
3428 END IF;
3429
3430 -- Initialize return status and message stack
3431 x_return_status := FND_API.G_RET_STS_SUCCESS;
3432 IF FND_API.to_Boolean(p_init_msg_list) THEN
3433 FND_MSG_PUB.initialize;
3434 END IF;
3435
3436 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
3437 -- Find the match rule
3438 null;
3439
3440 -- No MATCH RULE FOUND
3441 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
3442 FND_MSG_PUB.ADD;
3443 RAISE FND_API.G_EXC_ERROR;
3444 END IF;
3445 OPEN c_match_rule;
3446 FETCH c_match_rule INTO l_cmp_flag;
3447 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
3448 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
3449 FND_MSG_PUB.ADD;
3450 RAISE FND_API.G_EXC_ERROR;
3451 END IF;
3452 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
3453 IF p_rule_id=2 THEN
3454 IF NOT HZ_MATCH_RULE_2.check_staged THEN
3455 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3456 FND_MSG_PUB.ADD;
3457 RAISE FND_API.G_EXC_ERROR;
3458 END IF;
3459 HZ_MATCH_RULE_2.call_api_dynamic(
3460 p_rule_id,
3461 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3462 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3463 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3464 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3465 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3466 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3467 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3468 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3469 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3470 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
3471 ELSIF p_rule_id=3 THEN
3472 IF NOT HZ_MATCH_RULE_3.check_staged THEN
3473 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3474 FND_MSG_PUB.ADD;
3475 RAISE FND_API.G_EXC_ERROR;
3476 END IF;
3477 HZ_MATCH_RULE_3.call_api_dynamic(
3478 p_rule_id,
3479 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3480 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3481 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3482 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3483 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3484 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3485 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3486 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3487 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3488 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
3489 ELSIF p_rule_id=4 THEN
3490 IF NOT HZ_MATCH_RULE_4.check_staged THEN
3491 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3492 FND_MSG_PUB.ADD;
3493 RAISE FND_API.G_EXC_ERROR;
3494 END IF;
3495 HZ_MATCH_RULE_4.call_api_dynamic(
3496 p_rule_id,
3497 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3498 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3499 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3500 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3501 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3502 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3503 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3504 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3505 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3506 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
3507 ELSIF p_rule_id=5 THEN
3508 IF NOT HZ_MATCH_RULE_5.check_staged THEN
3509 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3510 FND_MSG_PUB.ADD;
3511 RAISE FND_API.G_EXC_ERROR;
3512 END IF;
3513 HZ_MATCH_RULE_5.call_api_dynamic(
3514 p_rule_id,
3515 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3516 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3517 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3518 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3519 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3520 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3521 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3522 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3523 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3524 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
3525 ELSIF p_rule_id=6 THEN
3526 IF NOT HZ_MATCH_RULE_6.check_staged THEN
3527 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3528 FND_MSG_PUB.ADD;
3529 RAISE FND_API.G_EXC_ERROR;
3530 END IF;
3531 HZ_MATCH_RULE_6.call_api_dynamic(
3532 p_rule_id,
3533 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3534 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3535 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3536 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3537 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3538 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3539 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3540 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3541 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3542 -- Code for Match rule SAMPLE: SIMILAR_PERSON
3543 ELSIF p_rule_id=7 THEN
3544 IF NOT HZ_MATCH_RULE_7.check_staged THEN
3545 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3546 FND_MSG_PUB.ADD;
3547 RAISE FND_API.G_EXC_ERROR;
3548 END IF;
3549 HZ_MATCH_RULE_7.call_api_dynamic(
3550 p_rule_id,
3551 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3552 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3553 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3554 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3555 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3556 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3557 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3558 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3559 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3560 -- Code for Match rule SAMPLE: SEARCH
3561 ELSIF p_rule_id=8 THEN
3562 IF NOT HZ_MATCH_RULE_8.check_staged THEN
3563 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3564 FND_MSG_PUB.ADD;
3565 RAISE FND_API.G_EXC_ERROR;
3566 END IF;
3567 HZ_MATCH_RULE_8.call_api_dynamic(
3568 p_rule_id,
3569 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3570 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3571 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3572 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3573 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3574 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3575 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3576 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3577 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3578 -- Code for Match rule RM SEARCH RULE
3579 ELSIF p_rule_id=32 THEN
3580 IF NOT HZ_MATCH_RULE_32.check_staged THEN
3581 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3582 FND_MSG_PUB.ADD;
3583 RAISE FND_API.G_EXC_ERROR;
3584 END IF;
3585 HZ_MATCH_RULE_32.call_api_dynamic(
3586 p_rule_id,
3587 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3588 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3589 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3590 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3591 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3592 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3593 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3594 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3595 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3596 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
3597 ELSIF p_rule_id=33 THEN
3598 IF NOT HZ_MATCH_RULE_33.check_staged THEN
3599 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3600 FND_MSG_PUB.ADD;
3601 RAISE FND_API.G_EXC_ERROR;
3602 END IF;
3603 HZ_MATCH_RULE_33.call_api_dynamic(
3604 p_rule_id,
3605 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3606 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3607 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3608 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3609 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3610 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3611 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3612 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3613 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3614 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
3615 ELSIF p_rule_id=34 THEN
3616 IF NOT HZ_MATCH_RULE_34.check_staged THEN
3617 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3618 FND_MSG_PUB.ADD;
3619 RAISE FND_API.G_EXC_ERROR;
3620 END IF;
3621 HZ_MATCH_RULE_34.call_api_dynamic(
3622 p_rule_id,
3623 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3624 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3625 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3626 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3627 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3628 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3629 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3630 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3631 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3632 -- Code for Match rule DL SMART SEARCH
3633 ELSIF p_rule_id=35 THEN
3634 IF NOT HZ_MATCH_RULE_35.check_staged THEN
3635 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3636 FND_MSG_PUB.ADD;
3637 RAISE FND_API.G_EXC_ERROR;
3638 END IF;
3639 HZ_MATCH_RULE_35.call_api_dynamic(
3640 p_rule_id,
3641 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3642 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3643 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3644 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3645 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3646 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3647 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3648 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3649 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3650 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
3651 ELSIF p_rule_id=36 THEN
3652 IF NOT HZ_MATCH_RULE_36.check_staged THEN
3653 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3654 FND_MSG_PUB.ADD;
3655 RAISE FND_API.G_EXC_ERROR;
3656 END IF;
3657 HZ_MATCH_RULE_36.call_api_dynamic(
3658 p_rule_id,
3659 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3660 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3661 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3662 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3663 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3664 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3665 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3666 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3667 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3668 -- Code for Match rule DL ADDRESS DEFAULT
3669 ELSIF p_rule_id=37 THEN
3670 IF NOT HZ_MATCH_RULE_37.check_staged THEN
3671 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3672 FND_MSG_PUB.ADD;
3673 RAISE FND_API.G_EXC_ERROR;
3674 END IF;
3675 HZ_MATCH_RULE_37.call_api_dynamic(
3676 p_rule_id,
3677 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3678 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3679 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3680 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3681 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3682 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3683 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3684 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3685 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3686 -- Code for Match rule DL RELATIONSHIP DEFAULT
3687 ELSIF p_rule_id=38 THEN
3688 IF NOT HZ_MATCH_RULE_38.check_staged THEN
3689 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3690 FND_MSG_PUB.ADD;
3691 RAISE FND_API.G_EXC_ERROR;
3692 END IF;
3693 HZ_MATCH_RULE_38.call_api_dynamic(
3694 p_rule_id,
3695 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3696 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3697 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3698 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3699 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3700 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3701 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3702 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3703 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3704 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
3705 ELSIF p_rule_id=39 THEN
3706 IF NOT HZ_MATCH_RULE_39.check_staged THEN
3707 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3708 FND_MSG_PUB.ADD;
3709 RAISE FND_API.G_EXC_ERROR;
3710 END IF;
3711 HZ_MATCH_RULE_39.call_api_dynamic(
3712 p_rule_id,
3713 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3714 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3715 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3716 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3717 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3718 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3719 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3720 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3721 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3722 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
3723 ELSIF p_rule_id=40 THEN
3724 IF NOT HZ_MATCH_RULE_40.check_staged THEN
3725 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3726 FND_MSG_PUB.ADD;
3727 RAISE FND_API.G_EXC_ERROR;
3728 END IF;
3729 HZ_MATCH_RULE_40.call_api_dynamic(
3730 p_rule_id,
3731 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3732 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3733 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3734 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3735 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3736 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3737 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3738 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3739 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3740 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
3741 ELSIF p_rule_id=41 THEN
3742 IF NOT HZ_MATCH_RULE_41.check_staged THEN
3743 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3744 FND_MSG_PUB.ADD;
3745 RAISE FND_API.G_EXC_ERROR;
3746 END IF;
3747 HZ_MATCH_RULE_41.call_api_dynamic(
3748 p_rule_id,
3749 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3750 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3751 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3752 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3753 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3754 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3755 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3756 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3757 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3758 -- Code for Match rule SAMPLE: SEARCH EXACT
3759 ELSIF p_rule_id=42 THEN
3760 IF NOT HZ_MATCH_RULE_42.check_staged THEN
3761 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3762 FND_MSG_PUB.ADD;
3763 RAISE FND_API.G_EXC_ERROR;
3764 END IF;
3765 HZ_MATCH_RULE_42.call_api_dynamic(
3766 p_rule_id,
3767 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3768 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3769 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3770 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3771 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3772 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3773 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3774 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3775 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3776 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
3777 ELSIF p_rule_id=48 THEN
3778 IF NOT HZ_MATCH_RULE_48.check_staged THEN
3779 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3780 FND_MSG_PUB.ADD;
3781 RAISE FND_API.G_EXC_ERROR;
3782 END IF;
3783 HZ_MATCH_RULE_48.call_api_dynamic(
3784 p_rule_id,
3785 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3786 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3787 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3788 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3789 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3790 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3791 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3792 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3793 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3794 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
3795 ELSIF p_rule_id=50 THEN
3796 IF NOT HZ_MATCH_RULE_50.check_staged THEN
3797 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3798 FND_MSG_PUB.ADD;
3799 RAISE FND_API.G_EXC_ERROR;
3800 END IF;
3801 HZ_MATCH_RULE_50.call_api_dynamic(
3802 p_rule_id,
3803 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3804 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3805 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3806 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3807 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3808 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3809 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3810 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3811 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3812 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
3813 ELSIF p_rule_id=51 THEN
3814 IF NOT HZ_MATCH_RULE_51.check_staged THEN
3815 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3816 FND_MSG_PUB.ADD;
3817 RAISE FND_API.G_EXC_ERROR;
3818 END IF;
3819 HZ_MATCH_RULE_51.call_api_dynamic(
3820 p_rule_id,
3821 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3822 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3823 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3824 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3825 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3826 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3827 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3828 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3829 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3830 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
3831 ELSIF p_rule_id=52 THEN
3832 IF NOT HZ_MATCH_RULE_52.check_staged THEN
3833 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3834 FND_MSG_PUB.ADD;
3835 RAISE FND_API.G_EXC_ERROR;
3836 END IF;
3837 HZ_MATCH_RULE_52.call_api_dynamic(
3838 p_rule_id,
3839 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3840 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3841 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3842 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3843 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3844 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3845 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3846 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3847 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3848 -- Code for Match rule CREDIT MANAGEMENT SEARCH
3849 ELSIF p_rule_id=53 THEN
3850 IF NOT HZ_MATCH_RULE_53.check_staged THEN
3851 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3852 FND_MSG_PUB.ADD;
3853 RAISE FND_API.G_EXC_ERROR;
3854 END IF;
3855 HZ_MATCH_RULE_53.call_api_dynamic(
3856 p_rule_id,
3857 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3858 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3859 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3860 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3861 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3862 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3863 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3864 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3865 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3866 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
3867 ELSIF p_rule_id=58 THEN
3868 IF NOT HZ_MATCH_RULE_58.check_staged THEN
3869 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3870 FND_MSG_PUB.ADD;
3871 RAISE FND_API.G_EXC_ERROR;
3872 END IF;
3873 HZ_MATCH_RULE_58.call_api_dynamic(
3874 p_rule_id,
3875 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3876 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3877 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3878 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3879 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3880 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3881 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3882 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3883 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3884 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
3885 ELSIF p_rule_id=60 THEN
3886 IF NOT HZ_MATCH_RULE_60.check_staged THEN
3887 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3888 FND_MSG_PUB.ADD;
3889 RAISE FND_API.G_EXC_ERROR;
3890 END IF;
3891 HZ_MATCH_RULE_60.call_api_dynamic(
3892 p_rule_id,
3893 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3894 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3895 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3896 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3897 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3898 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3899 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3900 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3901 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3902 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
3903 ELSIF p_rule_id=61 THEN
3904 IF NOT HZ_MATCH_RULE_61.check_staged THEN
3905 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3906 FND_MSG_PUB.ADD;
3907 RAISE FND_API.G_EXC_ERROR;
3908 END IF;
3909 HZ_MATCH_RULE_61.call_api_dynamic(
3910 p_rule_id,
3911 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3912 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3913 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3914 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3915 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3916 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3917 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3918 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3919 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3920 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
3921 ELSIF p_rule_id=62 THEN
3922 IF NOT HZ_MATCH_RULE_62.check_staged THEN
3923 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3924 FND_MSG_PUB.ADD;
3925 RAISE FND_API.G_EXC_ERROR;
3926 END IF;
3927 HZ_MATCH_RULE_62.call_api_dynamic(
3928 p_rule_id,
3929 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3930 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3931 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3932 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3933 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3934 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3935 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3936 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3937 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3938 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
3939 ELSIF p_rule_id=98 THEN
3940 IF NOT HZ_MATCH_RULE_98.check_staged THEN
3941 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3942 FND_MSG_PUB.ADD;
3943 RAISE FND_API.G_EXC_ERROR;
3944 END IF;
3945 HZ_MATCH_RULE_98.call_api_dynamic(
3946 p_rule_id,
3947 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3948 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3949 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3950 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3951 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3952 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3953 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3954 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3955 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3956 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
3957 ELSIF p_rule_id=99 THEN
3958 IF NOT HZ_MATCH_RULE_99.check_staged THEN
3959 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
3960 FND_MSG_PUB.ADD;
3961 RAISE FND_API.G_EXC_ERROR;
3962 END IF;
3963 HZ_MATCH_RULE_99.call_api_dynamic(
3964 p_rule_id,
3965 p_attrib_id1,p_attrib_id2,p_attrib_id3,p_attrib_id4,p_attrib_id5,
3966 p_attrib_id6,p_attrib_id7,p_attrib_id8,p_attrib_id9,p_attrib_id10,
3967 p_attrib_id11,p_attrib_id12,p_attrib_id13,p_attrib_id14,p_attrib_id15,
3968 p_attrib_id16,p_attrib_id17,p_attrib_id18,p_attrib_id19,p_attrib_id20,
3969 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
3970 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
3971 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
3972 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
3973 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,x_search_ctx_id,x_num_matches);
3974 END IF;
3975 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3976 hz_utility_v2pub.debug(p_message=>'call_api_dynamic(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
3977 END IF;
3978 --Standard call to get message count and if count is 1, get message info
3979 FND_MSG_PUB.Count_And_Get(
3980 p_encoded => FND_API.G_FALSE,
3981 p_count => x_msg_count,
3982 p_data => x_msg_data);
3983 EXCEPTION
3984 WHEN FND_API.G_EXC_ERROR THEN
3985 x_return_status := FND_API.G_RET_STS_ERROR;
3986 FND_MSG_PUB.Count_And_Get(
3987 p_encoded => FND_API.G_FALSE,
3988 p_count => x_msg_count,
3989 p_data => x_msg_data);
3990 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3991 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3992 FND_MSG_PUB.Count_And_Get(
3993 p_encoded => FND_API.G_FALSE,
3994 p_count => x_msg_count,
3995 p_data => x_msg_data);
3996
3997 WHEN OTHERS THEN
3998 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3999 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4000 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4001 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4002 FND_MSG_PUB.ADD;
4003
4004 FND_MSG_PUB.Count_And_Get(
4005 p_encoded => FND_API.G_FALSE,
4006 p_count => x_msg_count,
4007 p_data => x_msg_data);
4008 END;
4009
4010 FUNCTION get_attrib_id(p_str VARCHAR2)
4011 RETURN NUMBER IS
4012 l_id NUMBER;
4013 l_pl NUMBER;
4014 l_token VARCHAR2(1);
4015 BEGIN
4016 l_token := '.';
4017 l_pl := instrb(p_str, l_token);
4018 select attribute_id into l_id
4019 from hz_trans_attributes_b
4020 where entity_name = substrb(p_str, 0, l_pl - 1)
4021 and ATTRIBUTE_NAME = substrb(p_str, l_pl + 1);
4022 RETURN l_id;
4023 EXCEPTION WHEN NO_DATA_FOUND THEN
4024 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_NOATTRIB_ERROR' );
4025 FND_MESSAGE.SET_TOKEN('ENTITY_ATTRIBUTE' ,p_str);
4026 FND_MSG_PUB.ADD;
4027 RAISE FND_API.G_EXC_ERROR;
4028 END get_attrib_id;
4029 PROCEDURE call_api_dynamic_names (
4030 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4031 p_rule_id IN NUMBER,
4032 p_attrib_name1 IN VARCHAR2,
4033 p_attrib_name2 IN VARCHAR2,
4034 p_attrib_name3 IN VARCHAR2,
4035 p_attrib_name4 IN VARCHAR2,
4036 p_attrib_name5 IN VARCHAR2,
4037 p_attrib_name6 IN VARCHAR2,
4038 p_attrib_name7 IN VARCHAR2,
4039 p_attrib_name8 IN VARCHAR2,
4040 p_attrib_name9 IN VARCHAR2,
4041 p_attrib_name10 IN VARCHAR2,
4042 p_attrib_name11 IN VARCHAR2,
4043 p_attrib_name12 IN VARCHAR2,
4044 p_attrib_name13 IN VARCHAR2,
4045 p_attrib_name14 IN VARCHAR2,
4046 p_attrib_name15 IN VARCHAR2,
4047 p_attrib_name16 IN VARCHAR2,
4048 p_attrib_name17 IN VARCHAR2,
4049 p_attrib_name18 IN VARCHAR2,
4050 p_attrib_name19 IN VARCHAR2,
4051 p_attrib_name20 IN VARCHAR2,
4052 p_attrib_val1 IN VARCHAR2,
4053 p_attrib_val2 IN VARCHAR2,
4054 p_attrib_val3 IN VARCHAR2,
4055 p_attrib_val4 IN VARCHAR2,
4056 p_attrib_val5 IN VARCHAR2,
4057 p_attrib_val6 IN VARCHAR2,
4058 p_attrib_val7 IN VARCHAR2,
4059 p_attrib_val8 IN VARCHAR2,
4060 p_attrib_val9 IN VARCHAR2,
4061 p_attrib_val10 IN VARCHAR2,
4062 p_attrib_val11 IN VARCHAR2,
4063 p_attrib_val12 IN VARCHAR2,
4064 p_attrib_val13 IN VARCHAR2,
4065 p_attrib_val14 IN VARCHAR2,
4066 p_attrib_val15 IN VARCHAR2,
4067 p_attrib_val16 IN VARCHAR2,
4068 p_attrib_val17 IN VARCHAR2,
4069 p_attrib_val18 IN VARCHAR2,
4070 p_attrib_val19 IN VARCHAR2,
4071 p_attrib_val20 IN VARCHAR2,
4072 p_restrict_sql IN VARCHAR2,
4073 p_api_name IN VARCHAR2,
4074 p_match_type IN VARCHAR2,
4075 p_party_id IN NUMBER,
4076 p_search_merged IN VARCHAR2,
4077 x_search_ctx_id OUT NUMBER,
4078 x_num_matches OUT NUMBER,
4079 x_return_status OUT VARCHAR2,
4080 x_msg_count OUT NUMBER,
4081 x_msg_data OUT VARCHAR2
4082 ) IS
4083 l_attrib_id1 NUMBER;
4084 l_attrib_id2 NUMBER;
4085 l_attrib_id3 NUMBER;
4086 l_attrib_id4 NUMBER;
4087 l_attrib_id5 NUMBER;
4088 l_attrib_id6 NUMBER;
4089 l_attrib_id7 NUMBER;
4090 l_attrib_id8 NUMBER;
4091 l_attrib_id9 NUMBER;
4092 l_attrib_id10 NUMBER;
4093 l_attrib_id11 NUMBER;
4094 l_attrib_id12 NUMBER;
4095 l_attrib_id13 NUMBER;
4096 l_attrib_id14 NUMBER;
4097 l_attrib_id15 NUMBER;
4098 l_attrib_id16 NUMBER;
4099 l_attrib_id17 NUMBER;
4100 l_attrib_id18 NUMBER;
4101 l_attrib_id19 NUMBER;
4102 l_attrib_id20 NUMBER;
4103 BEGIN
4104 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4105 hz_utility_v2pub.debug(p_message=>'call_api_dynamic_names(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4106 END IF;
4107 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4108 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id ,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
4109 END IF;
4110
4111 IF (p_attrib_name1 IS NOT NULL) THEN
4112 l_attrib_id1 := get_attrib_id(p_attrib_name1);
4113 END IF;
4114 IF (p_attrib_name2 IS NOT NULL) THEN
4115 l_attrib_id2 := get_attrib_id(p_attrib_name2);
4116 END IF;
4117 IF (p_attrib_name3 IS NOT NULL) THEN
4118 l_attrib_id3 := get_attrib_id(p_attrib_name3);
4119 END IF;
4120 IF (p_attrib_name4 IS NOT NULL) THEN
4121 l_attrib_id4 := get_attrib_id(p_attrib_name4);
4122 END IF;
4123 IF (p_attrib_name5 IS NOT NULL) THEN
4124 l_attrib_id5 := get_attrib_id(p_attrib_name5);
4125 END IF;
4126 IF (p_attrib_name6 IS NOT NULL) THEN
4127 l_attrib_id6 := get_attrib_id(p_attrib_name6);
4128 END IF;
4129 IF (p_attrib_name7 IS NOT NULL) THEN
4130 l_attrib_id7 := get_attrib_id(p_attrib_name7);
4131 END IF;
4132 IF (p_attrib_name8 IS NOT NULL) THEN
4133 l_attrib_id8 := get_attrib_id(p_attrib_name8);
4134 END IF;
4135 IF (p_attrib_name9 IS NOT NULL) THEN
4136 l_attrib_id9 := get_attrib_id(p_attrib_name9);
4137 END IF;
4138 IF (p_attrib_name10 IS NOT NULL) THEN
4139 l_attrib_id10 := get_attrib_id(p_attrib_name10);
4140 END IF;
4141 IF (p_attrib_name11 IS NOT NULL) THEN
4142 l_attrib_id11 := get_attrib_id(p_attrib_name11);
4143 END IF;
4144 IF (p_attrib_name12 IS NOT NULL) THEN
4145 l_attrib_id12 := get_attrib_id(p_attrib_name12);
4146 END IF;
4147 IF (p_attrib_name13 IS NOT NULL) THEN
4148 l_attrib_id13 := get_attrib_id(p_attrib_name13);
4149 END IF;
4150 IF (p_attrib_name14 IS NOT NULL) THEN
4151 l_attrib_id14 := get_attrib_id(p_attrib_name14);
4152 END IF;
4153 IF (p_attrib_name15 IS NOT NULL) THEN
4154 l_attrib_id15 := get_attrib_id(p_attrib_name15);
4155 END IF;
4156 IF (p_attrib_name16 IS NOT NULL) THEN
4157 l_attrib_id16 := get_attrib_id(p_attrib_name16);
4158 END IF;
4159 IF (p_attrib_name17 IS NOT NULL) THEN
4160 l_attrib_id17 := get_attrib_id(p_attrib_name17);
4161 END IF;
4162 IF (p_attrib_name18 IS NOT NULL) THEN
4163 l_attrib_id18 := get_attrib_id(p_attrib_name18);
4164 END IF;
4165 IF (p_attrib_name19 IS NOT NULL) THEN
4166 l_attrib_id19 := get_attrib_id(p_attrib_name19);
4167 END IF;
4168 IF (p_attrib_name20 IS NOT NULL) THEN
4169 l_attrib_id20 := get_attrib_id(p_attrib_name20);
4170 END IF;
4171 hz_party_search.call_api_dynamic(
4172 p_init_msg_list, p_rule_id,
4173 l_attrib_id1,l_attrib_id2,l_attrib_id3,l_attrib_id4,l_attrib_id5,
4174 l_attrib_id6,l_attrib_id7,l_attrib_id8,l_attrib_id9,l_attrib_id10,
4175 l_attrib_id11,l_attrib_id12,l_attrib_id13,l_attrib_id14,l_attrib_id15,
4176 l_attrib_id16,l_attrib_id17,l_attrib_id18,l_attrib_id19,l_attrib_id20,
4177 p_attrib_val1,p_attrib_val2,p_attrib_val3,p_attrib_val4,p_attrib_val5,
4178 p_attrib_val6,p_attrib_val7,p_attrib_val8,p_attrib_val9,p_attrib_val10,
4179 p_attrib_val11,p_attrib_val12,p_attrib_val13,p_attrib_val14,p_attrib_val15,
4180 p_attrib_val16,p_attrib_val17,p_attrib_val18,p_attrib_val19,p_attrib_val20,
4181 p_restrict_sql,p_api_name,p_match_type,p_party_id,p_search_merged,
4182 x_search_ctx_id,x_num_matches, x_return_status, x_msg_count, x_msg_data);
4183 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4184 hz_utility_v2pub.debug(p_message=>'call_api_dynamic_names(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4185 END IF;
4186 --Standard call to get message count and if count is 1, get message info
4187 FND_MSG_PUB.Count_And_Get(
4188 p_encoded => FND_API.G_FALSE,
4189 p_count => x_msg_count,
4190 p_data => x_msg_data);
4191 EXCEPTION
4192 WHEN FND_API.G_EXC_ERROR THEN
4193 x_return_status := FND_API.G_RET_STS_ERROR;
4194 FND_MSG_PUB.Count_And_Get(
4195 p_encoded => FND_API.G_FALSE,
4196 p_count => x_msg_count,
4197 p_data => x_msg_data);
4198 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4199 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4200 FND_MSG_PUB.Count_And_Get(
4201 p_encoded => FND_API.G_FALSE,
4202 p_count => x_msg_count,
4203 p_data => x_msg_data);
4204
4205 WHEN OTHERS THEN
4206 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4207 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4208 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4209 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4210 FND_MSG_PUB.ADD;
4211
4212 FND_MSG_PUB.Count_And_Get(
4213 p_encoded => FND_API.G_FALSE,
4214 p_count => x_msg_count,
4215 p_data => x_msg_data);
4216 END call_api_dynamic_names;
4217 PROCEDURE get_matching_party_sites (
4218 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4219 p_rule_id IN NUMBER,
4220 p_party_id IN NUMBER,
4221 p_party_site_list IN PARTY_SITE_LIST,
4222 p_contact_point_list IN CONTACT_POINT_LIST,
4223 x_search_ctx_id OUT NUMBER,
4224 x_return_status OUT VARCHAR2,
4225 x_msg_count OUT NUMBER,
4226 x_msg_data OUT VARCHAR2
4227 ) IS
4228 l_num_matches NUMBER;
4229 BEGIN
4230 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4231 hz_utility_v2pub.debug(p_message=>'get_matching_party_sites-1(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4232 END IF;
4233 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4234 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
4235 END IF;
4236 get_matching_party_sites(p_init_msg_list,p_rule_id,p_party_id,
4237 p_party_site_list,p_contact_point_list,
4238 NULL,NULL,x_search_ctx_id,
4239 l_num_matches,x_return_status,x_msg_count,x_msg_data);
4240 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4241 hz_utility_v2pub.debug(p_message=>'get_matching_party_sites-1(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4242 END IF;
4243 END;
4244 PROCEDURE get_matching_party_sites (
4245 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4246 p_rule_id IN NUMBER,
4247 p_party_id IN NUMBER,
4248 p_party_site_list IN PARTY_SITE_LIST,
4249 p_contact_point_list IN CONTACT_POINT_LIST,
4250 p_restrict_sql IN VARCHAR2,
4251 p_match_type IN VARCHAR2,
4252 x_search_ctx_id OUT NUMBER,
4253 x_num_matches OUT NUMBER,
4254 x_return_status OUT VARCHAR2,
4255 x_msg_count OUT NUMBER,
4256 x_msg_data OUT VARCHAR2
4257 ) IS
4258 CURSOR c_match_rule IS
4259 SELECT COMPILATION_FLAG
4260 FROM HZ_MATCH_RULES_VL
4261 WHERE MATCH_RULE_ID = p_rule_id;
4262 l_cmp_flag VARCHAR2(1);
4263 BEGIN
4264 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4265 hz_utility_v2pub.debug(p_message=>'get_matching_party_sites(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4266 END IF;
4267 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4268 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
4269 END IF;
4270
4271 -- Initialize return status and message stack
4272 x_return_status := FND_API.G_RET_STS_SUCCESS;
4273 IF FND_API.to_Boolean(p_init_msg_list) THEN
4274 FND_MSG_PUB.initialize;
4275 END IF;
4276
4277 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
4278 -- No MATCH RULE FOUND
4279 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
4280 FND_MSG_PUB.ADD;
4281 RAISE FND_API.G_EXC_ERROR;
4282 END IF;
4283 OPEN c_match_rule;
4284 FETCH c_match_rule INTO l_cmp_flag;
4285 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
4286 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
4287 FND_MSG_PUB.ADD;
4288 RAISE FND_API.G_EXC_ERROR;
4289 END IF;
4290 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
4291 IF p_rule_id=2 THEN
4292 IF NOT HZ_MATCH_RULE_2.check_staged THEN
4293 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4294 FND_MSG_PUB.ADD;
4295 RAISE FND_API.G_EXC_ERROR;
4296 END IF;
4297 HZ_MATCH_RULE_2.get_matching_party_sites(
4298 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4299 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4300 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
4301 ELSIF p_rule_id=3 THEN
4302 IF NOT HZ_MATCH_RULE_3.check_staged THEN
4303 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4304 FND_MSG_PUB.ADD;
4305 RAISE FND_API.G_EXC_ERROR;
4306 END IF;
4307 HZ_MATCH_RULE_3.get_matching_party_sites(
4308 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4309 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4310 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
4311 ELSIF p_rule_id=4 THEN
4312 IF NOT HZ_MATCH_RULE_4.check_staged THEN
4313 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4314 FND_MSG_PUB.ADD;
4315 RAISE FND_API.G_EXC_ERROR;
4316 END IF;
4317 HZ_MATCH_RULE_4.get_matching_party_sites(
4318 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4319 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4320 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
4321 ELSIF p_rule_id=5 THEN
4322 IF NOT HZ_MATCH_RULE_5.check_staged THEN
4323 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4324 FND_MSG_PUB.ADD;
4325 RAISE FND_API.G_EXC_ERROR;
4326 END IF;
4327 HZ_MATCH_RULE_5.get_matching_party_sites(
4328 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4329 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4330 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
4331 ELSIF p_rule_id=6 THEN
4332 IF NOT HZ_MATCH_RULE_6.check_staged THEN
4333 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4334 FND_MSG_PUB.ADD;
4335 RAISE FND_API.G_EXC_ERROR;
4336 END IF;
4337 HZ_MATCH_RULE_6.get_matching_party_sites(
4338 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4339 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4340 -- Code for Match rule SAMPLE: SIMILAR_PERSON
4341 ELSIF p_rule_id=7 THEN
4342 IF NOT HZ_MATCH_RULE_7.check_staged THEN
4343 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4344 FND_MSG_PUB.ADD;
4345 RAISE FND_API.G_EXC_ERROR;
4346 END IF;
4347 HZ_MATCH_RULE_7.get_matching_party_sites(
4348 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4349 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4350 -- Code for Match rule SAMPLE: SEARCH
4351 ELSIF p_rule_id=8 THEN
4352 IF NOT HZ_MATCH_RULE_8.check_staged THEN
4353 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4354 FND_MSG_PUB.ADD;
4355 RAISE FND_API.G_EXC_ERROR;
4356 END IF;
4357 HZ_MATCH_RULE_8.get_matching_party_sites(
4358 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4359 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4360 -- Code for Match rule RM SEARCH RULE
4361 ELSIF p_rule_id=32 THEN
4362 IF NOT HZ_MATCH_RULE_32.check_staged THEN
4363 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4364 FND_MSG_PUB.ADD;
4365 RAISE FND_API.G_EXC_ERROR;
4366 END IF;
4367 HZ_MATCH_RULE_32.get_matching_party_sites(
4368 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4369 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4370 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
4371 ELSIF p_rule_id=33 THEN
4372 IF NOT HZ_MATCH_RULE_33.check_staged THEN
4373 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4374 FND_MSG_PUB.ADD;
4375 RAISE FND_API.G_EXC_ERROR;
4376 END IF;
4377 HZ_MATCH_RULE_33.get_matching_party_sites(
4378 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4379 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4380 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
4381 ELSIF p_rule_id=34 THEN
4382 IF NOT HZ_MATCH_RULE_34.check_staged THEN
4383 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4384 FND_MSG_PUB.ADD;
4385 RAISE FND_API.G_EXC_ERROR;
4386 END IF;
4387 HZ_MATCH_RULE_34.get_matching_party_sites(
4388 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4389 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4390 -- Code for Match rule DL SMART SEARCH
4391 ELSIF p_rule_id=35 THEN
4392 IF NOT HZ_MATCH_RULE_35.check_staged THEN
4393 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4394 FND_MSG_PUB.ADD;
4395 RAISE FND_API.G_EXC_ERROR;
4396 END IF;
4397 HZ_MATCH_RULE_35.get_matching_party_sites(
4398 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4399 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4400 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
4401 ELSIF p_rule_id=36 THEN
4402 IF NOT HZ_MATCH_RULE_36.check_staged THEN
4403 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4404 FND_MSG_PUB.ADD;
4405 RAISE FND_API.G_EXC_ERROR;
4406 END IF;
4407 HZ_MATCH_RULE_36.get_matching_party_sites(
4408 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4409 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4410 -- Code for Match rule DL ADDRESS DEFAULT
4411 ELSIF p_rule_id=37 THEN
4412 IF NOT HZ_MATCH_RULE_37.check_staged THEN
4413 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4414 FND_MSG_PUB.ADD;
4415 RAISE FND_API.G_EXC_ERROR;
4416 END IF;
4417 HZ_MATCH_RULE_37.get_matching_party_sites(
4418 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4419 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4420 -- Code for Match rule DL RELATIONSHIP DEFAULT
4421 ELSIF p_rule_id=38 THEN
4422 IF NOT HZ_MATCH_RULE_38.check_staged THEN
4423 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4424 FND_MSG_PUB.ADD;
4425 RAISE FND_API.G_EXC_ERROR;
4426 END IF;
4427 HZ_MATCH_RULE_38.get_matching_party_sites(
4428 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4429 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4430 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
4431 ELSIF p_rule_id=39 THEN
4432 IF NOT HZ_MATCH_RULE_39.check_staged THEN
4433 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4434 FND_MSG_PUB.ADD;
4435 RAISE FND_API.G_EXC_ERROR;
4436 END IF;
4437 HZ_MATCH_RULE_39.get_matching_party_sites(
4438 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4439 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4440 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
4441 ELSIF p_rule_id=40 THEN
4442 IF NOT HZ_MATCH_RULE_40.check_staged THEN
4443 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4444 FND_MSG_PUB.ADD;
4445 RAISE FND_API.G_EXC_ERROR;
4446 END IF;
4447 HZ_MATCH_RULE_40.get_matching_party_sites(
4448 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4449 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4450 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
4451 ELSIF p_rule_id=41 THEN
4452 IF NOT HZ_MATCH_RULE_41.check_staged THEN
4453 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4454 FND_MSG_PUB.ADD;
4455 RAISE FND_API.G_EXC_ERROR;
4456 END IF;
4457 HZ_MATCH_RULE_41.get_matching_party_sites(
4458 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4459 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4460 -- Code for Match rule SAMPLE: SEARCH EXACT
4461 ELSIF p_rule_id=42 THEN
4462 IF NOT HZ_MATCH_RULE_42.check_staged THEN
4463 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4464 FND_MSG_PUB.ADD;
4465 RAISE FND_API.G_EXC_ERROR;
4466 END IF;
4467 HZ_MATCH_RULE_42.get_matching_party_sites(
4468 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4469 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4470 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
4471 ELSIF p_rule_id=48 THEN
4472 IF NOT HZ_MATCH_RULE_48.check_staged THEN
4473 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4474 FND_MSG_PUB.ADD;
4475 RAISE FND_API.G_EXC_ERROR;
4476 END IF;
4477 HZ_MATCH_RULE_48.get_matching_party_sites(
4478 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4479 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4480 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
4481 ELSIF p_rule_id=50 THEN
4482 IF NOT HZ_MATCH_RULE_50.check_staged THEN
4483 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4484 FND_MSG_PUB.ADD;
4485 RAISE FND_API.G_EXC_ERROR;
4486 END IF;
4487 HZ_MATCH_RULE_50.get_matching_party_sites(
4488 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4489 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4490 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
4491 ELSIF p_rule_id=51 THEN
4492 IF NOT HZ_MATCH_RULE_51.check_staged THEN
4493 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4494 FND_MSG_PUB.ADD;
4495 RAISE FND_API.G_EXC_ERROR;
4496 END IF;
4497 HZ_MATCH_RULE_51.get_matching_party_sites(
4498 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4499 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4500 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
4501 ELSIF p_rule_id=52 THEN
4502 IF NOT HZ_MATCH_RULE_52.check_staged THEN
4503 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4504 FND_MSG_PUB.ADD;
4505 RAISE FND_API.G_EXC_ERROR;
4506 END IF;
4507 HZ_MATCH_RULE_52.get_matching_party_sites(
4508 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4509 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4510 -- Code for Match rule CREDIT MANAGEMENT SEARCH
4511 ELSIF p_rule_id=53 THEN
4512 IF NOT HZ_MATCH_RULE_53.check_staged THEN
4513 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4514 FND_MSG_PUB.ADD;
4515 RAISE FND_API.G_EXC_ERROR;
4516 END IF;
4517 HZ_MATCH_RULE_53.get_matching_party_sites(
4518 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4519 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4520 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
4521 ELSIF p_rule_id=58 THEN
4522 IF NOT HZ_MATCH_RULE_58.check_staged THEN
4523 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4524 FND_MSG_PUB.ADD;
4525 RAISE FND_API.G_EXC_ERROR;
4526 END IF;
4527 HZ_MATCH_RULE_58.get_matching_party_sites(
4528 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4529 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4530 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
4531 ELSIF p_rule_id=60 THEN
4532 IF NOT HZ_MATCH_RULE_60.check_staged THEN
4533 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4534 FND_MSG_PUB.ADD;
4535 RAISE FND_API.G_EXC_ERROR;
4536 END IF;
4537 HZ_MATCH_RULE_60.get_matching_party_sites(
4538 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4539 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4540 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
4541 ELSIF p_rule_id=61 THEN
4542 IF NOT HZ_MATCH_RULE_61.check_staged THEN
4543 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4544 FND_MSG_PUB.ADD;
4545 RAISE FND_API.G_EXC_ERROR;
4546 END IF;
4547 HZ_MATCH_RULE_61.get_matching_party_sites(
4548 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4549 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4550 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
4551 ELSIF p_rule_id=62 THEN
4552 IF NOT HZ_MATCH_RULE_62.check_staged THEN
4553 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4554 FND_MSG_PUB.ADD;
4555 RAISE FND_API.G_EXC_ERROR;
4556 END IF;
4557 HZ_MATCH_RULE_62.get_matching_party_sites(
4558 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4559 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4560 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
4561 ELSIF p_rule_id=98 THEN
4562 IF NOT HZ_MATCH_RULE_98.check_staged THEN
4563 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4564 FND_MSG_PUB.ADD;
4565 RAISE FND_API.G_EXC_ERROR;
4566 END IF;
4567 HZ_MATCH_RULE_98.get_matching_party_sites(
4568 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4569 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4570 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
4571 ELSIF p_rule_id=99 THEN
4572 IF NOT HZ_MATCH_RULE_99.check_staged THEN
4573 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4574 FND_MSG_PUB.ADD;
4575 RAISE FND_API.G_EXC_ERROR;
4576 END IF;
4577 HZ_MATCH_RULE_99.get_matching_party_sites(
4578 p_rule_id, p_party_id,p_party_site_list, p_contact_point_list,
4579 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4580 END IF;
4581 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4582 hz_utility_v2pub.debug(p_message=>'get_matching_party_sites(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4583 END IF;
4584 --Standard call to get message count and if count is 1, get message info
4585 FND_MSG_PUB.Count_And_Get(
4586 p_encoded => FND_API.G_FALSE,
4587 p_count => x_msg_count,
4588 p_data => x_msg_data);
4589 EXCEPTION
4590 WHEN FND_API.G_EXC_ERROR THEN
4591 x_return_status := FND_API.G_RET_STS_ERROR;
4592 FND_MSG_PUB.Count_And_Get(
4593 p_encoded => FND_API.G_FALSE,
4594 p_count => x_msg_count,
4595 p_data => x_msg_data);
4596 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4598 FND_MSG_PUB.Count_And_Get(
4599 p_encoded => FND_API.G_FALSE,
4600 p_count => x_msg_count,
4601 p_data => x_msg_data);
4602
4603 WHEN OTHERS THEN
4604 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4605 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
4606 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
4607 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4608 FND_MSG_PUB.ADD;
4609
4610 FND_MSG_PUB.Count_And_Get(
4611 p_encoded => FND_API.G_FALSE,
4612 p_count => x_msg_count,
4613 p_data => x_msg_data);
4614 END;
4615
4616 PROCEDURE get_matching_contacts (
4617 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4618 p_rule_id IN NUMBER,
4619 p_party_id IN NUMBER,
4620 p_contact_list IN CONTACT_LIST,
4621 p_contact_point_list IN CONTACT_POINT_LIST,
4622 x_search_ctx_id OUT NUMBER,
4623 x_return_status OUT VARCHAR2,
4624 x_msg_count OUT NUMBER,
4625 x_msg_data OUT VARCHAR2
4626 ) IS
4627 l_num_matches NUMBER;
4628 BEGIN
4629 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4630 hz_utility_v2pub.debug(p_message=>'get_matching_contacts-1(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4631 END IF;
4632 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4633 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
4634 END IF;
4635 get_matching_contacts(p_init_msg_list,p_rule_id,p_party_id,
4636 p_contact_list,p_contact_point_list,
4637 NULL,NULL,x_search_ctx_id,
4638 l_num_matches,x_return_status,x_msg_count,x_msg_data);
4639 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4640 hz_utility_v2pub.debug(p_message=>'get_matching_contacts-1(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4641 END IF;
4642 END;
4643 PROCEDURE get_matching_contacts (
4644 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
4645 p_rule_id IN NUMBER,
4646 p_party_id IN NUMBER,
4647 p_contact_list IN CONTACT_LIST,
4648 p_contact_point_list IN CONTACT_POINT_LIST,
4649 p_restrict_sql IN VARCHAR2,
4650 p_match_type IN VARCHAR2,
4651 x_search_ctx_id OUT NUMBER,
4652 x_num_matches OUT NUMBER,
4653 x_return_status OUT VARCHAR2,
4654 x_msg_count OUT NUMBER,
4655 x_msg_data OUT VARCHAR2
4656 ) IS
4657 CURSOR c_match_rule IS
4658 SELECT COMPILATION_FLAG
4659 FROM HZ_MATCH_RULES_VL
4660 WHERE MATCH_RULE_ID = p_rule_id;
4661 l_cmp_flag VARCHAR2(1);
4662 BEGIN
4663 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4664 hz_utility_v2pub.debug(p_message=>'get_matching_contacts(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
4665 END IF;
4666 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
4667 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
4668 END IF;
4669
4670 -- Initialize return status and message stack
4671 x_return_status := FND_API.G_RET_STS_SUCCESS;
4672 IF FND_API.to_Boolean(p_init_msg_list) THEN
4673 FND_MSG_PUB.initialize;
4674 END IF;
4675
4676 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
4677 -- No MATCH RULE FOUND
4678 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
4679 FND_MSG_PUB.ADD;
4680 RAISE FND_API.G_EXC_ERROR;
4681 END IF;
4682 OPEN c_match_rule;
4683 FETCH c_match_rule INTO l_cmp_flag;
4684 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
4685 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
4686 FND_MSG_PUB.ADD;
4687 RAISE FND_API.G_EXC_ERROR;
4688 END IF;
4689 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
4690 IF p_rule_id=2 THEN
4691 IF NOT HZ_MATCH_RULE_2.check_staged THEN
4692 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4693 FND_MSG_PUB.ADD;
4694 RAISE FND_API.G_EXC_ERROR;
4695 END IF;
4696 HZ_MATCH_RULE_2.get_matching_contacts(
4697 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4698 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4699 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
4700 ELSIF p_rule_id=3 THEN
4701 IF NOT HZ_MATCH_RULE_3.check_staged THEN
4702 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4703 FND_MSG_PUB.ADD;
4704 RAISE FND_API.G_EXC_ERROR;
4705 END IF;
4706 HZ_MATCH_RULE_3.get_matching_contacts(
4707 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4708 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4709 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
4710 ELSIF p_rule_id=4 THEN
4711 IF NOT HZ_MATCH_RULE_4.check_staged THEN
4712 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4713 FND_MSG_PUB.ADD;
4714 RAISE FND_API.G_EXC_ERROR;
4715 END IF;
4716 HZ_MATCH_RULE_4.get_matching_contacts(
4717 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4718 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4719 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
4720 ELSIF p_rule_id=5 THEN
4721 IF NOT HZ_MATCH_RULE_5.check_staged THEN
4722 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4723 FND_MSG_PUB.ADD;
4724 RAISE FND_API.G_EXC_ERROR;
4725 END IF;
4726 HZ_MATCH_RULE_5.get_matching_contacts(
4727 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4728 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4729 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
4730 ELSIF p_rule_id=6 THEN
4731 IF NOT HZ_MATCH_RULE_6.check_staged THEN
4732 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4733 FND_MSG_PUB.ADD;
4734 RAISE FND_API.G_EXC_ERROR;
4735 END IF;
4736 HZ_MATCH_RULE_6.get_matching_contacts(
4737 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4738 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4739 -- Code for Match rule SAMPLE: SIMILAR_PERSON
4740 ELSIF p_rule_id=7 THEN
4741 IF NOT HZ_MATCH_RULE_7.check_staged THEN
4742 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4743 FND_MSG_PUB.ADD;
4744 RAISE FND_API.G_EXC_ERROR;
4745 END IF;
4746 HZ_MATCH_RULE_7.get_matching_contacts(
4747 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4748 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4749 -- Code for Match rule SAMPLE: SEARCH
4750 ELSIF p_rule_id=8 THEN
4751 IF NOT HZ_MATCH_RULE_8.check_staged THEN
4752 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4753 FND_MSG_PUB.ADD;
4754 RAISE FND_API.G_EXC_ERROR;
4755 END IF;
4756 HZ_MATCH_RULE_8.get_matching_contacts(
4757 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4758 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4759 -- Code for Match rule RM SEARCH RULE
4760 ELSIF p_rule_id=32 THEN
4761 IF NOT HZ_MATCH_RULE_32.check_staged THEN
4762 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4763 FND_MSG_PUB.ADD;
4764 RAISE FND_API.G_EXC_ERROR;
4765 END IF;
4766 HZ_MATCH_RULE_32.get_matching_contacts(
4767 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4768 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4769 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
4770 ELSIF p_rule_id=33 THEN
4771 IF NOT HZ_MATCH_RULE_33.check_staged THEN
4772 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4773 FND_MSG_PUB.ADD;
4774 RAISE FND_API.G_EXC_ERROR;
4775 END IF;
4776 HZ_MATCH_RULE_33.get_matching_contacts(
4777 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4778 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4779 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
4780 ELSIF p_rule_id=34 THEN
4781 IF NOT HZ_MATCH_RULE_34.check_staged THEN
4782 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4783 FND_MSG_PUB.ADD;
4784 RAISE FND_API.G_EXC_ERROR;
4785 END IF;
4786 HZ_MATCH_RULE_34.get_matching_contacts(
4787 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4788 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4789 -- Code for Match rule DL SMART SEARCH
4790 ELSIF p_rule_id=35 THEN
4791 IF NOT HZ_MATCH_RULE_35.check_staged THEN
4792 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4793 FND_MSG_PUB.ADD;
4794 RAISE FND_API.G_EXC_ERROR;
4795 END IF;
4796 HZ_MATCH_RULE_35.get_matching_contacts(
4797 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4798 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4799 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
4800 ELSIF p_rule_id=36 THEN
4801 IF NOT HZ_MATCH_RULE_36.check_staged THEN
4802 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4803 FND_MSG_PUB.ADD;
4804 RAISE FND_API.G_EXC_ERROR;
4805 END IF;
4806 HZ_MATCH_RULE_36.get_matching_contacts(
4807 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4808 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4809 -- Code for Match rule DL ADDRESS DEFAULT
4810 ELSIF p_rule_id=37 THEN
4811 IF NOT HZ_MATCH_RULE_37.check_staged THEN
4812 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4813 FND_MSG_PUB.ADD;
4814 RAISE FND_API.G_EXC_ERROR;
4815 END IF;
4816 HZ_MATCH_RULE_37.get_matching_contacts(
4817 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4818 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4819 -- Code for Match rule DL RELATIONSHIP DEFAULT
4820 ELSIF p_rule_id=38 THEN
4821 IF NOT HZ_MATCH_RULE_38.check_staged THEN
4822 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4823 FND_MSG_PUB.ADD;
4824 RAISE FND_API.G_EXC_ERROR;
4825 END IF;
4826 HZ_MATCH_RULE_38.get_matching_contacts(
4827 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4828 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4829 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
4830 ELSIF p_rule_id=39 THEN
4831 IF NOT HZ_MATCH_RULE_39.check_staged THEN
4832 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4833 FND_MSG_PUB.ADD;
4834 RAISE FND_API.G_EXC_ERROR;
4835 END IF;
4836 HZ_MATCH_RULE_39.get_matching_contacts(
4837 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4838 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4839 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
4840 ELSIF p_rule_id=40 THEN
4841 IF NOT HZ_MATCH_RULE_40.check_staged THEN
4842 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4843 FND_MSG_PUB.ADD;
4844 RAISE FND_API.G_EXC_ERROR;
4845 END IF;
4846 HZ_MATCH_RULE_40.get_matching_contacts(
4847 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4848 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4849 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
4850 ELSIF p_rule_id=41 THEN
4851 IF NOT HZ_MATCH_RULE_41.check_staged THEN
4852 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4853 FND_MSG_PUB.ADD;
4854 RAISE FND_API.G_EXC_ERROR;
4855 END IF;
4856 HZ_MATCH_RULE_41.get_matching_contacts(
4857 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4858 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4859 -- Code for Match rule SAMPLE: SEARCH EXACT
4860 ELSIF p_rule_id=42 THEN
4861 IF NOT HZ_MATCH_RULE_42.check_staged THEN
4862 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4863 FND_MSG_PUB.ADD;
4864 RAISE FND_API.G_EXC_ERROR;
4865 END IF;
4866 HZ_MATCH_RULE_42.get_matching_contacts(
4867 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4868 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4869 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
4870 ELSIF p_rule_id=48 THEN
4871 IF NOT HZ_MATCH_RULE_48.check_staged THEN
4872 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4873 FND_MSG_PUB.ADD;
4874 RAISE FND_API.G_EXC_ERROR;
4875 END IF;
4876 HZ_MATCH_RULE_48.get_matching_contacts(
4877 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4878 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4879 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
4880 ELSIF p_rule_id=50 THEN
4881 IF NOT HZ_MATCH_RULE_50.check_staged THEN
4882 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4883 FND_MSG_PUB.ADD;
4884 RAISE FND_API.G_EXC_ERROR;
4885 END IF;
4886 HZ_MATCH_RULE_50.get_matching_contacts(
4887 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4888 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4889 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
4890 ELSIF p_rule_id=51 THEN
4891 IF NOT HZ_MATCH_RULE_51.check_staged THEN
4892 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4893 FND_MSG_PUB.ADD;
4894 RAISE FND_API.G_EXC_ERROR;
4895 END IF;
4896 HZ_MATCH_RULE_51.get_matching_contacts(
4897 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4898 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4899 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
4900 ELSIF p_rule_id=52 THEN
4901 IF NOT HZ_MATCH_RULE_52.check_staged THEN
4902 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4903 FND_MSG_PUB.ADD;
4904 RAISE FND_API.G_EXC_ERROR;
4905 END IF;
4906 HZ_MATCH_RULE_52.get_matching_contacts(
4907 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4908 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4909 -- Code for Match rule CREDIT MANAGEMENT SEARCH
4910 ELSIF p_rule_id=53 THEN
4911 IF NOT HZ_MATCH_RULE_53.check_staged THEN
4912 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4913 FND_MSG_PUB.ADD;
4914 RAISE FND_API.G_EXC_ERROR;
4915 END IF;
4916 HZ_MATCH_RULE_53.get_matching_contacts(
4917 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4918 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4919 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
4920 ELSIF p_rule_id=58 THEN
4921 IF NOT HZ_MATCH_RULE_58.check_staged THEN
4922 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4923 FND_MSG_PUB.ADD;
4924 RAISE FND_API.G_EXC_ERROR;
4925 END IF;
4926 HZ_MATCH_RULE_58.get_matching_contacts(
4927 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4928 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4929 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
4930 ELSIF p_rule_id=60 THEN
4931 IF NOT HZ_MATCH_RULE_60.check_staged THEN
4932 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4933 FND_MSG_PUB.ADD;
4934 RAISE FND_API.G_EXC_ERROR;
4935 END IF;
4936 HZ_MATCH_RULE_60.get_matching_contacts(
4937 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4938 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4939 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
4940 ELSIF p_rule_id=61 THEN
4941 IF NOT HZ_MATCH_RULE_61.check_staged THEN
4942 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4943 FND_MSG_PUB.ADD;
4944 RAISE FND_API.G_EXC_ERROR;
4945 END IF;
4946 HZ_MATCH_RULE_61.get_matching_contacts(
4947 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4948 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4949 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
4950 ELSIF p_rule_id=62 THEN
4951 IF NOT HZ_MATCH_RULE_62.check_staged THEN
4952 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4953 FND_MSG_PUB.ADD;
4954 RAISE FND_API.G_EXC_ERROR;
4955 END IF;
4956 HZ_MATCH_RULE_62.get_matching_contacts(
4957 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4958 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4959 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
4960 ELSIF p_rule_id=98 THEN
4961 IF NOT HZ_MATCH_RULE_98.check_staged THEN
4962 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4963 FND_MSG_PUB.ADD;
4964 RAISE FND_API.G_EXC_ERROR;
4965 END IF;
4966 HZ_MATCH_RULE_98.get_matching_contacts(
4967 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4968 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4969 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
4970 ELSIF p_rule_id=99 THEN
4971 IF NOT HZ_MATCH_RULE_99.check_staged THEN
4972 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
4973 FND_MSG_PUB.ADD;
4974 RAISE FND_API.G_EXC_ERROR;
4975 END IF;
4976 HZ_MATCH_RULE_99.get_matching_contacts(
4977 p_rule_id, p_party_id,p_contact_list, p_contact_point_list,
4978 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
4979 END IF;
4980 --Standard call to get message count and if count is 1, get message info
4981 FND_MSG_PUB.Count_And_Get(
4982 p_encoded => FND_API.G_FALSE,
4983 p_count => x_msg_count,
4984 p_data => x_msg_data);
4985 EXCEPTION
4986 WHEN FND_API.G_EXC_ERROR THEN
4987 x_return_status := FND_API.G_RET_STS_ERROR;
4988 FND_MSG_PUB.Count_And_Get(
4989 p_encoded => FND_API.G_FALSE,
4990 p_count => x_msg_count,
4991 p_data => x_msg_data);
4992 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4993 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4994 FND_MSG_PUB.Count_And_Get(
4995 p_encoded => FND_API.G_FALSE,
4996 p_count => x_msg_count,
4997 p_data => x_msg_data);
4998
4999 WHEN OTHERS THEN
5000 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5001 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
5002 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
5003 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5004 FND_MSG_PUB.ADD;
5005
5006 FND_MSG_PUB.Count_And_Get(
5007 p_encoded => FND_API.G_FALSE,
5008 p_count => x_msg_count,
5009 p_data => x_msg_data);
5010 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5011 hz_utility_v2pub.debug(p_message=>'get_matching_contacts(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5012 END IF;
5013 END;
5014
5015 PROCEDURE get_matching_contact_points (
5016 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5017 p_rule_id IN NUMBER,
5018 p_party_id IN NUMBER,
5019 p_contact_point_list IN CONTACT_POINT_LIST,
5020 x_search_ctx_id OUT NUMBER,
5021 x_return_status OUT VARCHAR2,
5022 x_msg_count OUT NUMBER,
5023 x_msg_data OUT VARCHAR2
5024 ) IS
5025 l_num_matches NUMBER;
5026 BEGIN
5027 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5028 hz_utility_v2pub.debug(p_message=>'get_matching_contact_points-1(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5029 END IF;
5030 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5031 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
5032 END IF;
5033 get_matching_contact_points(p_init_msg_list,p_rule_id,p_party_id,
5034 p_contact_point_list,
5035 NULL,NULL,x_search_ctx_id,
5036 l_num_matches,x_return_status,x_msg_count,x_msg_data);
5037 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5038 hz_utility_v2pub.debug(p_message=>'get_matching_contact_points-1(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5039 END IF;
5040 END;
5041 PROCEDURE get_matching_contact_points (
5042 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5043 p_rule_id IN NUMBER,
5044 p_party_id IN NUMBER,
5045 p_contact_point_list IN CONTACT_POINT_LIST,
5046 p_restrict_sql IN VARCHAR2,
5047 p_match_type IN VARCHAR2,
5048 x_search_ctx_id OUT NUMBER,
5049 x_num_matches OUT NUMBER,
5050 x_return_status OUT VARCHAR2,
5051 x_msg_count OUT NUMBER,
5052 x_msg_data OUT VARCHAR2
5053 ) IS
5054 CURSOR c_match_rule IS
5055 SELECT COMPILATION_FLAG
5056 FROM HZ_MATCH_RULES_VL
5057 WHERE MATCH_RULE_ID = p_rule_id;
5058 l_cmp_flag VARCHAR2(1);
5059 BEGIN
5060 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5061 hz_utility_v2pub.debug(p_message=>'get_matching_contact_points(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5062 END IF;
5063 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5064 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
5065 END IF;
5066
5067 -- Initialize return status and message stack
5068 x_return_status := FND_API.G_RET_STS_SUCCESS;
5069 IF FND_API.to_Boolean(p_init_msg_list) THEN
5070 FND_MSG_PUB.initialize;
5071 END IF;
5072
5073 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
5074 -- No MATCH RULE FOUND
5075 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
5076 FND_MSG_PUB.ADD;
5077 RAISE FND_API.G_EXC_ERROR;
5078 END IF;
5079 OPEN c_match_rule;
5080 FETCH c_match_rule INTO l_cmp_flag;
5081 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
5082 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
5083 FND_MSG_PUB.ADD;
5084 RAISE FND_API.G_EXC_ERROR;
5085 END IF;
5086 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
5087 IF p_rule_id=2 THEN
5088 IF NOT HZ_MATCH_RULE_2.check_staged THEN
5089 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5090 FND_MSG_PUB.ADD;
5091 RAISE FND_API.G_EXC_ERROR;
5092 END IF;
5093 HZ_MATCH_RULE_2.get_matching_contact_points(
5094 p_rule_id, p_party_id, p_contact_point_list,
5095 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5096 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
5097 ELSIF p_rule_id=3 THEN
5098 IF NOT HZ_MATCH_RULE_3.check_staged THEN
5099 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5100 FND_MSG_PUB.ADD;
5101 RAISE FND_API.G_EXC_ERROR;
5102 END IF;
5103 HZ_MATCH_RULE_3.get_matching_contact_points(
5104 p_rule_id, p_party_id, p_contact_point_list,
5105 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5106 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
5107 ELSIF p_rule_id=4 THEN
5108 IF NOT HZ_MATCH_RULE_4.check_staged THEN
5109 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5110 FND_MSG_PUB.ADD;
5111 RAISE FND_API.G_EXC_ERROR;
5112 END IF;
5113 HZ_MATCH_RULE_4.get_matching_contact_points(
5114 p_rule_id, p_party_id, p_contact_point_list,
5115 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5116 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
5117 ELSIF p_rule_id=5 THEN
5118 IF NOT HZ_MATCH_RULE_5.check_staged THEN
5119 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5120 FND_MSG_PUB.ADD;
5121 RAISE FND_API.G_EXC_ERROR;
5122 END IF;
5123 HZ_MATCH_RULE_5.get_matching_contact_points(
5124 p_rule_id, p_party_id, p_contact_point_list,
5125 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5126 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
5127 ELSIF p_rule_id=6 THEN
5128 IF NOT HZ_MATCH_RULE_6.check_staged THEN
5129 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5130 FND_MSG_PUB.ADD;
5131 RAISE FND_API.G_EXC_ERROR;
5132 END IF;
5133 HZ_MATCH_RULE_6.get_matching_contact_points(
5134 p_rule_id, p_party_id, p_contact_point_list,
5135 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5136 -- Code for Match rule SAMPLE: SIMILAR_PERSON
5137 ELSIF p_rule_id=7 THEN
5138 IF NOT HZ_MATCH_RULE_7.check_staged THEN
5139 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5140 FND_MSG_PUB.ADD;
5141 RAISE FND_API.G_EXC_ERROR;
5142 END IF;
5143 HZ_MATCH_RULE_7.get_matching_contact_points(
5144 p_rule_id, p_party_id, p_contact_point_list,
5145 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5146 -- Code for Match rule SAMPLE: SEARCH
5147 ELSIF p_rule_id=8 THEN
5148 IF NOT HZ_MATCH_RULE_8.check_staged THEN
5149 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5150 FND_MSG_PUB.ADD;
5151 RAISE FND_API.G_EXC_ERROR;
5152 END IF;
5153 HZ_MATCH_RULE_8.get_matching_contact_points(
5154 p_rule_id, p_party_id, p_contact_point_list,
5155 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5156 -- Code for Match rule RM SEARCH RULE
5157 ELSIF p_rule_id=32 THEN
5158 IF NOT HZ_MATCH_RULE_32.check_staged THEN
5159 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5160 FND_MSG_PUB.ADD;
5161 RAISE FND_API.G_EXC_ERROR;
5162 END IF;
5163 HZ_MATCH_RULE_32.get_matching_contact_points(
5164 p_rule_id, p_party_id, p_contact_point_list,
5165 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5166 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5167 ELSIF p_rule_id=33 THEN
5168 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5169 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5170 FND_MSG_PUB.ADD;
5171 RAISE FND_API.G_EXC_ERROR;
5172 END IF;
5173 HZ_MATCH_RULE_33.get_matching_contact_points(
5174 p_rule_id, p_party_id, p_contact_point_list,
5175 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5176 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5177 ELSIF p_rule_id=34 THEN
5178 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5179 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5180 FND_MSG_PUB.ADD;
5181 RAISE FND_API.G_EXC_ERROR;
5182 END IF;
5183 HZ_MATCH_RULE_34.get_matching_contact_points(
5184 p_rule_id, p_party_id, p_contact_point_list,
5185 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5186 -- Code for Match rule DL SMART SEARCH
5187 ELSIF p_rule_id=35 THEN
5188 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5189 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5190 FND_MSG_PUB.ADD;
5191 RAISE FND_API.G_EXC_ERROR;
5192 END IF;
5193 HZ_MATCH_RULE_35.get_matching_contact_points(
5194 p_rule_id, p_party_id, p_contact_point_list,
5195 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5196 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5197 ELSIF p_rule_id=36 THEN
5198 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5199 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5200 FND_MSG_PUB.ADD;
5201 RAISE FND_API.G_EXC_ERROR;
5202 END IF;
5203 HZ_MATCH_RULE_36.get_matching_contact_points(
5204 p_rule_id, p_party_id, p_contact_point_list,
5205 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5206 -- Code for Match rule DL ADDRESS DEFAULT
5207 ELSIF p_rule_id=37 THEN
5208 IF NOT HZ_MATCH_RULE_37.check_staged THEN
5209 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5210 FND_MSG_PUB.ADD;
5211 RAISE FND_API.G_EXC_ERROR;
5212 END IF;
5213 HZ_MATCH_RULE_37.get_matching_contact_points(
5214 p_rule_id, p_party_id, p_contact_point_list,
5215 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5216 -- Code for Match rule DL RELATIONSHIP DEFAULT
5217 ELSIF p_rule_id=38 THEN
5218 IF NOT HZ_MATCH_RULE_38.check_staged THEN
5219 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5220 FND_MSG_PUB.ADD;
5221 RAISE FND_API.G_EXC_ERROR;
5222 END IF;
5223 HZ_MATCH_RULE_38.get_matching_contact_points(
5224 p_rule_id, p_party_id, p_contact_point_list,
5225 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5226 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
5227 ELSIF p_rule_id=39 THEN
5228 IF NOT HZ_MATCH_RULE_39.check_staged THEN
5229 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5230 FND_MSG_PUB.ADD;
5231 RAISE FND_API.G_EXC_ERROR;
5232 END IF;
5233 HZ_MATCH_RULE_39.get_matching_contact_points(
5234 p_rule_id, p_party_id, p_contact_point_list,
5235 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5236 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
5237 ELSIF p_rule_id=40 THEN
5238 IF NOT HZ_MATCH_RULE_40.check_staged THEN
5239 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5240 FND_MSG_PUB.ADD;
5241 RAISE FND_API.G_EXC_ERROR;
5242 END IF;
5243 HZ_MATCH_RULE_40.get_matching_contact_points(
5244 p_rule_id, p_party_id, p_contact_point_list,
5245 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5246 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
5247 ELSIF p_rule_id=41 THEN
5248 IF NOT HZ_MATCH_RULE_41.check_staged THEN
5249 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5250 FND_MSG_PUB.ADD;
5251 RAISE FND_API.G_EXC_ERROR;
5252 END IF;
5253 HZ_MATCH_RULE_41.get_matching_contact_points(
5254 p_rule_id, p_party_id, p_contact_point_list,
5255 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5256 -- Code for Match rule SAMPLE: SEARCH EXACT
5257 ELSIF p_rule_id=42 THEN
5258 IF NOT HZ_MATCH_RULE_42.check_staged THEN
5259 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5260 FND_MSG_PUB.ADD;
5261 RAISE FND_API.G_EXC_ERROR;
5262 END IF;
5263 HZ_MATCH_RULE_42.get_matching_contact_points(
5264 p_rule_id, p_party_id, p_contact_point_list,
5265 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5266 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
5267 ELSIF p_rule_id=48 THEN
5268 IF NOT HZ_MATCH_RULE_48.check_staged THEN
5269 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5270 FND_MSG_PUB.ADD;
5271 RAISE FND_API.G_EXC_ERROR;
5272 END IF;
5273 HZ_MATCH_RULE_48.get_matching_contact_points(
5274 p_rule_id, p_party_id, p_contact_point_list,
5275 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5276 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
5277 ELSIF p_rule_id=50 THEN
5278 IF NOT HZ_MATCH_RULE_50.check_staged THEN
5279 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5280 FND_MSG_PUB.ADD;
5281 RAISE FND_API.G_EXC_ERROR;
5282 END IF;
5283 HZ_MATCH_RULE_50.get_matching_contact_points(
5284 p_rule_id, p_party_id, p_contact_point_list,
5285 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5286 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
5287 ELSIF p_rule_id=51 THEN
5288 IF NOT HZ_MATCH_RULE_51.check_staged THEN
5289 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5290 FND_MSG_PUB.ADD;
5291 RAISE FND_API.G_EXC_ERROR;
5292 END IF;
5293 HZ_MATCH_RULE_51.get_matching_contact_points(
5294 p_rule_id, p_party_id, p_contact_point_list,
5295 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5296 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
5297 ELSIF p_rule_id=52 THEN
5298 IF NOT HZ_MATCH_RULE_52.check_staged THEN
5299 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5300 FND_MSG_PUB.ADD;
5301 RAISE FND_API.G_EXC_ERROR;
5302 END IF;
5303 HZ_MATCH_RULE_52.get_matching_contact_points(
5304 p_rule_id, p_party_id, p_contact_point_list,
5305 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5306 -- Code for Match rule CREDIT MANAGEMENT SEARCH
5307 ELSIF p_rule_id=53 THEN
5308 IF NOT HZ_MATCH_RULE_53.check_staged THEN
5309 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5310 FND_MSG_PUB.ADD;
5311 RAISE FND_API.G_EXC_ERROR;
5312 END IF;
5313 HZ_MATCH_RULE_53.get_matching_contact_points(
5314 p_rule_id, p_party_id, p_contact_point_list,
5315 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5316 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
5317 ELSIF p_rule_id=58 THEN
5318 IF NOT HZ_MATCH_RULE_58.check_staged THEN
5319 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5320 FND_MSG_PUB.ADD;
5321 RAISE FND_API.G_EXC_ERROR;
5322 END IF;
5323 HZ_MATCH_RULE_58.get_matching_contact_points(
5324 p_rule_id, p_party_id, p_contact_point_list,
5325 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5326 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
5327 ELSIF p_rule_id=60 THEN
5328 IF NOT HZ_MATCH_RULE_60.check_staged THEN
5329 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5330 FND_MSG_PUB.ADD;
5331 RAISE FND_API.G_EXC_ERROR;
5332 END IF;
5333 HZ_MATCH_RULE_60.get_matching_contact_points(
5334 p_rule_id, p_party_id, p_contact_point_list,
5335 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5336 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
5337 ELSIF p_rule_id=61 THEN
5338 IF NOT HZ_MATCH_RULE_61.check_staged THEN
5339 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5340 FND_MSG_PUB.ADD;
5341 RAISE FND_API.G_EXC_ERROR;
5342 END IF;
5343 HZ_MATCH_RULE_61.get_matching_contact_points(
5344 p_rule_id, p_party_id, p_contact_point_list,
5345 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5346 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
5347 ELSIF p_rule_id=62 THEN
5348 IF NOT HZ_MATCH_RULE_62.check_staged THEN
5349 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5350 FND_MSG_PUB.ADD;
5351 RAISE FND_API.G_EXC_ERROR;
5352 END IF;
5353 HZ_MATCH_RULE_62.get_matching_contact_points(
5354 p_rule_id, p_party_id, p_contact_point_list,
5355 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5356 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
5357 ELSIF p_rule_id=98 THEN
5358 IF NOT HZ_MATCH_RULE_98.check_staged THEN
5359 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5360 FND_MSG_PUB.ADD;
5361 RAISE FND_API.G_EXC_ERROR;
5362 END IF;
5363 HZ_MATCH_RULE_98.get_matching_contact_points(
5364 p_rule_id, p_party_id, p_contact_point_list,
5365 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5366 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
5367 ELSIF p_rule_id=99 THEN
5368 IF NOT HZ_MATCH_RULE_99.check_staged THEN
5369 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5370 FND_MSG_PUB.ADD;
5371 RAISE FND_API.G_EXC_ERROR;
5372 END IF;
5373 HZ_MATCH_RULE_99.get_matching_contact_points(
5374 p_rule_id, p_party_id, p_contact_point_list,
5375 p_restrict_sql, p_match_type,null,x_search_ctx_id,x_num_matches);
5376 END IF;
5377 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5378 hz_utility_v2pub.debug(p_message=>'get_matching_contact_points(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5379 END IF;
5380 --Standard call to get message count and if count is 1, get message info
5381 FND_MSG_PUB.Count_And_Get(
5382 p_encoded => FND_API.G_FALSE,
5383 p_count => x_msg_count,
5384 p_data => x_msg_data);
5385 EXCEPTION
5386 WHEN FND_API.G_EXC_ERROR THEN
5387 x_return_status := FND_API.G_RET_STS_ERROR;
5388 FND_MSG_PUB.Count_And_Get(
5389 p_encoded => FND_API.G_FALSE,
5390 p_count => x_msg_count,
5391 p_data => x_msg_data);
5392 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5394 FND_MSG_PUB.Count_And_Get(
5395 p_encoded => FND_API.G_FALSE,
5396 p_count => x_msg_count,
5397 p_data => x_msg_data);
5398
5399 WHEN OTHERS THEN
5400 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5401 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
5402 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
5403 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5404 FND_MSG_PUB.ADD;
5405
5406 FND_MSG_PUB.Count_And_Get(
5407 p_encoded => FND_API.G_FALSE,
5408 p_count => x_msg_count,
5409 p_data => x_msg_data);
5410 END;
5411
5412 PROCEDURE get_party_score_details (
5413 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5414 p_rule_id IN NUMBER,
5415 p_party_id IN NUMBER,
5416 p_search_ctx_id IN NUMBER,
5417 p_party_search_rec IN party_search_rec_type,
5418 p_party_site_list IN party_site_list,
5419 p_contact_list IN contact_list,
5420 p_contact_point_list IN contact_point_list,
5421 x_return_status OUT VARCHAR2,
5422 x_msg_count OUT NUMBER,
5423 x_msg_data OUT VARCHAR2
5424 ) IS
5425 l_search_ctx_id NUMBER;
5426 BEGIN
5427 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5428 hz_utility_v2pub.debug(p_message=>'get_party_score_details(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5429 END IF;
5430 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5431 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
5432 END IF;
5433 l_search_ctx_id:=p_search_ctx_id;
5434 get_score_details(p_init_msg_list,p_rule_id,p_party_id,
5435 p_party_search_rec,p_party_site_list,p_contact_list,p_contact_point_list,
5436 l_search_ctx_id,x_return_status,x_msg_count,x_msg_data);
5437 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5438 hz_utility_v2pub.debug(p_message=>'get_party_score_details(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5439 END IF;
5440 END;
5441 PROCEDURE get_score_details (
5442 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5443 p_rule_id IN NUMBER,
5444 p_party_id IN NUMBER,
5445 p_party_search_rec IN party_search_rec_type,
5446 p_party_site_list IN party_site_list,
5447 p_contact_list IN contact_list,
5448 p_contact_point_list IN contact_point_list,
5449 x_search_ctx_id IN OUT NUMBER,
5450 x_return_status OUT VARCHAR2,
5451 x_msg_count OUT NUMBER,
5452 x_msg_data OUT VARCHAR2
5453 ) IS
5454 CURSOR c_match_rule IS
5455 SELECT COMPILATION_FLAG
5456 FROM HZ_MATCH_RULES_VL
5457 WHERE MATCH_RULE_ID = p_rule_id;
5458 l_cmp_flag VARCHAR2(1);
5459 BEGIN
5460 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5461 hz_utility_v2pub.debug(p_message=>'get_score_details(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5462 END IF;
5463 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5464 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
5465 END IF;
5466
5467 -- Initialize return status and message stack
5468 x_return_status := FND_API.G_RET_STS_SUCCESS;
5469 IF FND_API.to_Boolean(p_init_msg_list) THEN
5470 FND_MSG_PUB.initialize;
5471 END IF;
5472
5473 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
5474 -- No MATCH RULE FOUND
5475 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
5476 FND_MSG_PUB.ADD;
5477 RAISE FND_API.G_EXC_ERROR;
5478 END IF;
5479 OPEN c_match_rule;
5480 FETCH c_match_rule INTO l_cmp_flag;
5481 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
5482 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
5483 FND_MSG_PUB.ADD;
5484 RAISE FND_API.G_EXC_ERROR;
5485 END IF;
5486 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
5487 IF p_rule_id=2 THEN
5488 IF NOT HZ_MATCH_RULE_2.check_staged THEN
5489 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5490 FND_MSG_PUB.ADD;
5491 RAISE FND_API.G_EXC_ERROR;
5492 END IF;
5493 HZ_MATCH_RULE_2.get_score_details(
5494 p_rule_id,
5495 p_party_id, p_party_search_rec,p_party_site_list,
5496 p_contact_list, p_contact_point_list,x_search_ctx_id);
5497 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
5498 ELSIF p_rule_id=3 THEN
5499 IF NOT HZ_MATCH_RULE_3.check_staged THEN
5500 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5501 FND_MSG_PUB.ADD;
5502 RAISE FND_API.G_EXC_ERROR;
5503 END IF;
5504 HZ_MATCH_RULE_3.get_score_details(
5505 p_rule_id,
5506 p_party_id, p_party_search_rec,p_party_site_list,
5507 p_contact_list, p_contact_point_list,x_search_ctx_id);
5508 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
5509 ELSIF p_rule_id=4 THEN
5510 IF NOT HZ_MATCH_RULE_4.check_staged THEN
5511 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5512 FND_MSG_PUB.ADD;
5513 RAISE FND_API.G_EXC_ERROR;
5514 END IF;
5515 HZ_MATCH_RULE_4.get_score_details(
5516 p_rule_id,
5517 p_party_id, p_party_search_rec,p_party_site_list,
5518 p_contact_list, p_contact_point_list,x_search_ctx_id);
5519 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
5520 ELSIF p_rule_id=5 THEN
5521 IF NOT HZ_MATCH_RULE_5.check_staged THEN
5522 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5523 FND_MSG_PUB.ADD;
5524 RAISE FND_API.G_EXC_ERROR;
5525 END IF;
5526 HZ_MATCH_RULE_5.get_score_details(
5527 p_rule_id,
5528 p_party_id, p_party_search_rec,p_party_site_list,
5529 p_contact_list, p_contact_point_list,x_search_ctx_id);
5530 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
5531 ELSIF p_rule_id=6 THEN
5532 IF NOT HZ_MATCH_RULE_6.check_staged THEN
5533 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5534 FND_MSG_PUB.ADD;
5535 RAISE FND_API.G_EXC_ERROR;
5536 END IF;
5537 HZ_MATCH_RULE_6.get_score_details(
5538 p_rule_id,
5539 p_party_id, p_party_search_rec,p_party_site_list,
5540 p_contact_list, p_contact_point_list,x_search_ctx_id);
5541 -- Code for Match rule SAMPLE: SIMILAR_PERSON
5542 ELSIF p_rule_id=7 THEN
5543 IF NOT HZ_MATCH_RULE_7.check_staged THEN
5544 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5545 FND_MSG_PUB.ADD;
5546 RAISE FND_API.G_EXC_ERROR;
5547 END IF;
5548 HZ_MATCH_RULE_7.get_score_details(
5549 p_rule_id,
5550 p_party_id, p_party_search_rec,p_party_site_list,
5551 p_contact_list, p_contact_point_list,x_search_ctx_id);
5552 -- Code for Match rule SAMPLE: SEARCH
5553 ELSIF p_rule_id=8 THEN
5554 IF NOT HZ_MATCH_RULE_8.check_staged THEN
5555 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5556 FND_MSG_PUB.ADD;
5557 RAISE FND_API.G_EXC_ERROR;
5558 END IF;
5559 HZ_MATCH_RULE_8.get_score_details(
5560 p_rule_id,
5561 p_party_id, p_party_search_rec,p_party_site_list,
5562 p_contact_list, p_contact_point_list,x_search_ctx_id);
5563 -- Code for Match rule RM SEARCH RULE
5564 ELSIF p_rule_id=32 THEN
5565 IF NOT HZ_MATCH_RULE_32.check_staged THEN
5566 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5567 FND_MSG_PUB.ADD;
5568 RAISE FND_API.G_EXC_ERROR;
5569 END IF;
5570 HZ_MATCH_RULE_32.get_score_details(
5571 p_rule_id,
5572 p_party_id, p_party_search_rec,p_party_site_list,
5573 p_contact_list, p_contact_point_list,x_search_ctx_id);
5574 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5575 ELSIF p_rule_id=33 THEN
5576 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5577 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5578 FND_MSG_PUB.ADD;
5579 RAISE FND_API.G_EXC_ERROR;
5580 END IF;
5581 HZ_MATCH_RULE_33.get_score_details(
5582 p_rule_id,
5583 p_party_id, p_party_search_rec,p_party_site_list,
5584 p_contact_list, p_contact_point_list,x_search_ctx_id);
5585 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5586 ELSIF p_rule_id=34 THEN
5587 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5588 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5589 FND_MSG_PUB.ADD;
5590 RAISE FND_API.G_EXC_ERROR;
5591 END IF;
5592 HZ_MATCH_RULE_34.get_score_details(
5593 p_rule_id,
5594 p_party_id, p_party_search_rec,p_party_site_list,
5595 p_contact_list, p_contact_point_list,x_search_ctx_id);
5596 -- Code for Match rule DL SMART SEARCH
5597 ELSIF p_rule_id=35 THEN
5598 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5599 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5600 FND_MSG_PUB.ADD;
5601 RAISE FND_API.G_EXC_ERROR;
5602 END IF;
5603 HZ_MATCH_RULE_35.get_score_details(
5604 p_rule_id,
5605 p_party_id, p_party_search_rec,p_party_site_list,
5606 p_contact_list, p_contact_point_list,x_search_ctx_id);
5607 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5608 ELSIF p_rule_id=36 THEN
5609 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5610 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5611 FND_MSG_PUB.ADD;
5612 RAISE FND_API.G_EXC_ERROR;
5613 END IF;
5614 HZ_MATCH_RULE_36.get_score_details(
5615 p_rule_id,
5616 p_party_id, p_party_search_rec,p_party_site_list,
5617 p_contact_list, p_contact_point_list,x_search_ctx_id);
5618 -- Code for Match rule DL ADDRESS DEFAULT
5619 ELSIF p_rule_id=37 THEN
5620 IF NOT HZ_MATCH_RULE_37.check_staged THEN
5621 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5622 FND_MSG_PUB.ADD;
5623 RAISE FND_API.G_EXC_ERROR;
5624 END IF;
5625 HZ_MATCH_RULE_37.get_score_details(
5626 p_rule_id,
5627 p_party_id, p_party_search_rec,p_party_site_list,
5628 p_contact_list, p_contact_point_list,x_search_ctx_id);
5629 -- Code for Match rule DL RELATIONSHIP DEFAULT
5630 ELSIF p_rule_id=38 THEN
5631 IF NOT HZ_MATCH_RULE_38.check_staged THEN
5632 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5633 FND_MSG_PUB.ADD;
5634 RAISE FND_API.G_EXC_ERROR;
5635 END IF;
5636 HZ_MATCH_RULE_38.get_score_details(
5637 p_rule_id,
5638 p_party_id, p_party_search_rec,p_party_site_list,
5639 p_contact_list, p_contact_point_list,x_search_ctx_id);
5640 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
5641 ELSIF p_rule_id=39 THEN
5642 IF NOT HZ_MATCH_RULE_39.check_staged THEN
5643 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5644 FND_MSG_PUB.ADD;
5645 RAISE FND_API.G_EXC_ERROR;
5646 END IF;
5647 HZ_MATCH_RULE_39.get_score_details(
5648 p_rule_id,
5649 p_party_id, p_party_search_rec,p_party_site_list,
5650 p_contact_list, p_contact_point_list,x_search_ctx_id);
5651 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
5652 ELSIF p_rule_id=40 THEN
5653 IF NOT HZ_MATCH_RULE_40.check_staged THEN
5654 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5655 FND_MSG_PUB.ADD;
5656 RAISE FND_API.G_EXC_ERROR;
5657 END IF;
5658 HZ_MATCH_RULE_40.get_score_details(
5659 p_rule_id,
5660 p_party_id, p_party_search_rec,p_party_site_list,
5661 p_contact_list, p_contact_point_list,x_search_ctx_id);
5662 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
5663 ELSIF p_rule_id=41 THEN
5664 IF NOT HZ_MATCH_RULE_41.check_staged THEN
5665 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5666 FND_MSG_PUB.ADD;
5667 RAISE FND_API.G_EXC_ERROR;
5668 END IF;
5669 HZ_MATCH_RULE_41.get_score_details(
5670 p_rule_id,
5671 p_party_id, p_party_search_rec,p_party_site_list,
5672 p_contact_list, p_contact_point_list,x_search_ctx_id);
5673 -- Code for Match rule SAMPLE: SEARCH EXACT
5674 ELSIF p_rule_id=42 THEN
5675 IF NOT HZ_MATCH_RULE_42.check_staged THEN
5676 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5677 FND_MSG_PUB.ADD;
5678 RAISE FND_API.G_EXC_ERROR;
5679 END IF;
5680 HZ_MATCH_RULE_42.get_score_details(
5681 p_rule_id,
5682 p_party_id, p_party_search_rec,p_party_site_list,
5683 p_contact_list, p_contact_point_list,x_search_ctx_id);
5684 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
5685 ELSIF p_rule_id=48 THEN
5686 IF NOT HZ_MATCH_RULE_48.check_staged THEN
5687 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5688 FND_MSG_PUB.ADD;
5689 RAISE FND_API.G_EXC_ERROR;
5690 END IF;
5691 HZ_MATCH_RULE_48.get_score_details(
5692 p_rule_id,
5693 p_party_id, p_party_search_rec,p_party_site_list,
5694 p_contact_list, p_contact_point_list,x_search_ctx_id);
5695 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
5696 ELSIF p_rule_id=50 THEN
5697 IF NOT HZ_MATCH_RULE_50.check_staged THEN
5698 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5699 FND_MSG_PUB.ADD;
5700 RAISE FND_API.G_EXC_ERROR;
5701 END IF;
5702 HZ_MATCH_RULE_50.get_score_details(
5703 p_rule_id,
5704 p_party_id, p_party_search_rec,p_party_site_list,
5705 p_contact_list, p_contact_point_list,x_search_ctx_id);
5706 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
5707 ELSIF p_rule_id=51 THEN
5708 IF NOT HZ_MATCH_RULE_51.check_staged THEN
5709 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5710 FND_MSG_PUB.ADD;
5711 RAISE FND_API.G_EXC_ERROR;
5712 END IF;
5713 HZ_MATCH_RULE_51.get_score_details(
5714 p_rule_id,
5715 p_party_id, p_party_search_rec,p_party_site_list,
5716 p_contact_list, p_contact_point_list,x_search_ctx_id);
5717 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
5718 ELSIF p_rule_id=52 THEN
5719 IF NOT HZ_MATCH_RULE_52.check_staged THEN
5720 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5721 FND_MSG_PUB.ADD;
5722 RAISE FND_API.G_EXC_ERROR;
5723 END IF;
5724 HZ_MATCH_RULE_52.get_score_details(
5725 p_rule_id,
5726 p_party_id, p_party_search_rec,p_party_site_list,
5727 p_contact_list, p_contact_point_list,x_search_ctx_id);
5728 -- Code for Match rule CREDIT MANAGEMENT SEARCH
5729 ELSIF p_rule_id=53 THEN
5730 IF NOT HZ_MATCH_RULE_53.check_staged THEN
5731 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5732 FND_MSG_PUB.ADD;
5733 RAISE FND_API.G_EXC_ERROR;
5734 END IF;
5735 HZ_MATCH_RULE_53.get_score_details(
5736 p_rule_id,
5737 p_party_id, p_party_search_rec,p_party_site_list,
5738 p_contact_list, p_contact_point_list,x_search_ctx_id);
5739 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
5740 ELSIF p_rule_id=58 THEN
5741 IF NOT HZ_MATCH_RULE_58.check_staged THEN
5742 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5743 FND_MSG_PUB.ADD;
5744 RAISE FND_API.G_EXC_ERROR;
5745 END IF;
5746 HZ_MATCH_RULE_58.get_score_details(
5747 p_rule_id,
5748 p_party_id, p_party_search_rec,p_party_site_list,
5749 p_contact_list, p_contact_point_list,x_search_ctx_id);
5750 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
5751 ELSIF p_rule_id=60 THEN
5752 IF NOT HZ_MATCH_RULE_60.check_staged THEN
5753 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5754 FND_MSG_PUB.ADD;
5755 RAISE FND_API.G_EXC_ERROR;
5756 END IF;
5757 HZ_MATCH_RULE_60.get_score_details(
5758 p_rule_id,
5759 p_party_id, p_party_search_rec,p_party_site_list,
5760 p_contact_list, p_contact_point_list,x_search_ctx_id);
5761 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
5762 ELSIF p_rule_id=61 THEN
5763 IF NOT HZ_MATCH_RULE_61.check_staged THEN
5764 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5765 FND_MSG_PUB.ADD;
5766 RAISE FND_API.G_EXC_ERROR;
5767 END IF;
5768 HZ_MATCH_RULE_61.get_score_details(
5769 p_rule_id,
5770 p_party_id, p_party_search_rec,p_party_site_list,
5771 p_contact_list, p_contact_point_list,x_search_ctx_id);
5772 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
5773 ELSIF p_rule_id=62 THEN
5774 IF NOT HZ_MATCH_RULE_62.check_staged THEN
5775 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5776 FND_MSG_PUB.ADD;
5777 RAISE FND_API.G_EXC_ERROR;
5778 END IF;
5779 HZ_MATCH_RULE_62.get_score_details(
5780 p_rule_id,
5781 p_party_id, p_party_search_rec,p_party_site_list,
5782 p_contact_list, p_contact_point_list,x_search_ctx_id);
5783 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
5784 ELSIF p_rule_id=98 THEN
5785 IF NOT HZ_MATCH_RULE_98.check_staged THEN
5786 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5787 FND_MSG_PUB.ADD;
5788 RAISE FND_API.G_EXC_ERROR;
5789 END IF;
5790 HZ_MATCH_RULE_98.get_score_details(
5791 p_rule_id,
5792 p_party_id, p_party_search_rec,p_party_site_list,
5793 p_contact_list, p_contact_point_list,x_search_ctx_id);
5794 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
5795 ELSIF p_rule_id=99 THEN
5796 IF NOT HZ_MATCH_RULE_99.check_staged THEN
5797 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5798 FND_MSG_PUB.ADD;
5799 RAISE FND_API.G_EXC_ERROR;
5800 END IF;
5801 HZ_MATCH_RULE_99.get_score_details(
5802 p_rule_id,
5803 p_party_id, p_party_search_rec,p_party_site_list,
5804 p_contact_list, p_contact_point_list,x_search_ctx_id);
5805 END IF;
5806 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5807 hz_utility_v2pub.debug(p_message=>'get_score_details(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5808 END IF;
5809 --Standard call to get message count and if count is 1, get message info
5810 FND_MSG_PUB.Count_And_Get(
5811 p_encoded => FND_API.G_FALSE,
5812 p_count => x_msg_count,
5813 p_data => x_msg_data);
5814 EXCEPTION
5815 WHEN FND_API.G_EXC_ERROR THEN
5816 x_return_status := FND_API.G_RET_STS_ERROR;
5817 FND_MSG_PUB.Count_And_Get(
5818 p_encoded => FND_API.G_FALSE,
5819 p_count => x_msg_count,
5820 p_data => x_msg_data);
5821 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5822 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5823 FND_MSG_PUB.Count_And_Get(
5824 p_encoded => FND_API.G_FALSE,
5825 p_count => x_msg_count,
5826 p_data => x_msg_data);
5827
5828 WHEN OTHERS THEN
5829 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5830 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
5831 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
5832 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5833 FND_MSG_PUB.ADD;
5834
5835 FND_MSG_PUB.Count_And_Get(
5836 p_encoded => FND_API.G_FALSE,
5837 p_count => x_msg_count,
5838 p_data => x_msg_data);
5839 END;
5840 PROCEDURE get_party_for_search (
5841 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
5842 p_rule_id IN NUMBER,
5843 p_party_id IN NUMBER,
5844 x_party_search_rec OUT NOCOPY party_search_rec_type,
5845 x_party_site_list OUT NOCOPY party_site_list,
5846 x_contact_list OUT NOCOPY contact_list,
5847 x_contact_point_list OUT NOCOPY contact_point_list,
5848 x_return_status OUT VARCHAR2,
5849 x_msg_count OUT NUMBER,
5850 x_msg_data OUT VARCHAR2
5851 ) IS
5852 CURSOR c_match_rule IS
5853 SELECT COMPILATION_FLAG
5854 FROM HZ_MATCH_RULES_VL
5855 WHERE MATCH_RULE_ID = p_rule_id;
5856 l_cmp_flag VARCHAR2(1);
5857 BEGIN
5858 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
5859 hz_utility_v2pub.debug(p_message=>'get_party_for_search(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
5860 END IF;
5861 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
5862 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
5863 END IF;
5864
5865 -- Initialize return status and message stack
5866 x_return_status := FND_API.G_RET_STS_SUCCESS;
5867 IF FND_API.to_Boolean(p_init_msg_list) THEN
5868 FND_MSG_PUB.initialize;
5869 END IF;
5870
5871 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
5872 -- No MATCH RULE FOUND
5873 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
5874 FND_MSG_PUB.ADD;
5875 RAISE FND_API.G_EXC_ERROR;
5876 END IF;
5877 OPEN c_match_rule;
5878 FETCH c_match_rule INTO l_cmp_flag;
5879 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
5880 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
5881 FND_MSG_PUB.ADD;
5882 RAISE FND_API.G_EXC_ERROR;
5883 END IF;
5884 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
5885 IF p_rule_id=2 THEN
5886 IF NOT HZ_MATCH_RULE_2.check_staged THEN
5887 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5888 FND_MSG_PUB.ADD;
5889 RAISE FND_API.G_EXC_ERROR;
5890 END IF;
5891 HZ_MATCH_RULE_2.get_party_for_search(
5892 p_party_id, x_party_search_rec,x_party_site_list,
5893 x_contact_list, x_contact_point_list);
5894 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
5895 ELSIF p_rule_id=3 THEN
5896 IF NOT HZ_MATCH_RULE_3.check_staged THEN
5897 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5898 FND_MSG_PUB.ADD;
5899 RAISE FND_API.G_EXC_ERROR;
5900 END IF;
5901 HZ_MATCH_RULE_3.get_party_for_search(
5902 p_party_id, x_party_search_rec,x_party_site_list,
5903 x_contact_list, x_contact_point_list);
5904 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
5905 ELSIF p_rule_id=4 THEN
5906 IF NOT HZ_MATCH_RULE_4.check_staged THEN
5907 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5908 FND_MSG_PUB.ADD;
5909 RAISE FND_API.G_EXC_ERROR;
5910 END IF;
5911 HZ_MATCH_RULE_4.get_party_for_search(
5912 p_party_id, x_party_search_rec,x_party_site_list,
5913 x_contact_list, x_contact_point_list);
5914 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
5915 ELSIF p_rule_id=5 THEN
5916 IF NOT HZ_MATCH_RULE_5.check_staged THEN
5917 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5918 FND_MSG_PUB.ADD;
5919 RAISE FND_API.G_EXC_ERROR;
5920 END IF;
5921 HZ_MATCH_RULE_5.get_party_for_search(
5922 p_party_id, x_party_search_rec,x_party_site_list,
5923 x_contact_list, x_contact_point_list);
5924 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
5925 ELSIF p_rule_id=6 THEN
5926 IF NOT HZ_MATCH_RULE_6.check_staged THEN
5927 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5928 FND_MSG_PUB.ADD;
5929 RAISE FND_API.G_EXC_ERROR;
5930 END IF;
5931 HZ_MATCH_RULE_6.get_party_for_search(
5932 p_party_id, x_party_search_rec,x_party_site_list,
5933 x_contact_list, x_contact_point_list);
5934 -- Code for Match rule SAMPLE: SIMILAR_PERSON
5935 ELSIF p_rule_id=7 THEN
5936 IF NOT HZ_MATCH_RULE_7.check_staged THEN
5937 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5938 FND_MSG_PUB.ADD;
5939 RAISE FND_API.G_EXC_ERROR;
5940 END IF;
5941 HZ_MATCH_RULE_7.get_party_for_search(
5942 p_party_id, x_party_search_rec,x_party_site_list,
5943 x_contact_list, x_contact_point_list);
5944 -- Code for Match rule SAMPLE: SEARCH
5945 ELSIF p_rule_id=8 THEN
5946 IF NOT HZ_MATCH_RULE_8.check_staged THEN
5947 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5948 FND_MSG_PUB.ADD;
5949 RAISE FND_API.G_EXC_ERROR;
5950 END IF;
5951 HZ_MATCH_RULE_8.get_party_for_search(
5952 p_party_id, x_party_search_rec,x_party_site_list,
5953 x_contact_list, x_contact_point_list);
5954 -- Code for Match rule RM SEARCH RULE
5955 ELSIF p_rule_id=32 THEN
5956 IF NOT HZ_MATCH_RULE_32.check_staged THEN
5957 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5958 FND_MSG_PUB.ADD;
5959 RAISE FND_API.G_EXC_ERROR;
5960 END IF;
5961 HZ_MATCH_RULE_32.get_party_for_search(
5962 p_party_id, x_party_search_rec,x_party_site_list,
5963 x_contact_list, x_contact_point_list);
5964 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
5965 ELSIF p_rule_id=33 THEN
5966 IF NOT HZ_MATCH_RULE_33.check_staged THEN
5967 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5968 FND_MSG_PUB.ADD;
5969 RAISE FND_API.G_EXC_ERROR;
5970 END IF;
5971 HZ_MATCH_RULE_33.get_party_for_search(
5972 p_party_id, x_party_search_rec,x_party_site_list,
5973 x_contact_list, x_contact_point_list);
5974 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
5975 ELSIF p_rule_id=34 THEN
5976 IF NOT HZ_MATCH_RULE_34.check_staged THEN
5977 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5978 FND_MSG_PUB.ADD;
5979 RAISE FND_API.G_EXC_ERROR;
5980 END IF;
5981 HZ_MATCH_RULE_34.get_party_for_search(
5982 p_party_id, x_party_search_rec,x_party_site_list,
5983 x_contact_list, x_contact_point_list);
5984 -- Code for Match rule DL SMART SEARCH
5985 ELSIF p_rule_id=35 THEN
5986 IF NOT HZ_MATCH_RULE_35.check_staged THEN
5987 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5988 FND_MSG_PUB.ADD;
5989 RAISE FND_API.G_EXC_ERROR;
5990 END IF;
5991 HZ_MATCH_RULE_35.get_party_for_search(
5992 p_party_id, x_party_search_rec,x_party_site_list,
5993 x_contact_list, x_contact_point_list);
5994 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
5995 ELSIF p_rule_id=36 THEN
5996 IF NOT HZ_MATCH_RULE_36.check_staged THEN
5997 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
5998 FND_MSG_PUB.ADD;
5999 RAISE FND_API.G_EXC_ERROR;
6000 END IF;
6001 HZ_MATCH_RULE_36.get_party_for_search(
6002 p_party_id, x_party_search_rec,x_party_site_list,
6003 x_contact_list, x_contact_point_list);
6004 -- Code for Match rule DL ADDRESS DEFAULT
6005 ELSIF p_rule_id=37 THEN
6006 IF NOT HZ_MATCH_RULE_37.check_staged THEN
6007 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6008 FND_MSG_PUB.ADD;
6009 RAISE FND_API.G_EXC_ERROR;
6010 END IF;
6011 HZ_MATCH_RULE_37.get_party_for_search(
6012 p_party_id, x_party_search_rec,x_party_site_list,
6013 x_contact_list, x_contact_point_list);
6014 -- Code for Match rule DL RELATIONSHIP DEFAULT
6015 ELSIF p_rule_id=38 THEN
6016 IF NOT HZ_MATCH_RULE_38.check_staged THEN
6017 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6018 FND_MSG_PUB.ADD;
6019 RAISE FND_API.G_EXC_ERROR;
6020 END IF;
6021 HZ_MATCH_RULE_38.get_party_for_search(
6022 p_party_id, x_party_search_rec,x_party_site_list,
6023 x_contact_list, x_contact_point_list);
6024 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
6025 ELSIF p_rule_id=39 THEN
6026 IF NOT HZ_MATCH_RULE_39.check_staged THEN
6027 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6028 FND_MSG_PUB.ADD;
6029 RAISE FND_API.G_EXC_ERROR;
6030 END IF;
6031 HZ_MATCH_RULE_39.get_party_for_search(
6032 p_party_id, x_party_search_rec,x_party_site_list,
6033 x_contact_list, x_contact_point_list);
6034 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
6035 ELSIF p_rule_id=40 THEN
6036 IF NOT HZ_MATCH_RULE_40.check_staged THEN
6037 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6038 FND_MSG_PUB.ADD;
6039 RAISE FND_API.G_EXC_ERROR;
6040 END IF;
6041 HZ_MATCH_RULE_40.get_party_for_search(
6042 p_party_id, x_party_search_rec,x_party_site_list,
6043 x_contact_list, x_contact_point_list);
6044 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
6045 ELSIF p_rule_id=41 THEN
6046 IF NOT HZ_MATCH_RULE_41.check_staged THEN
6047 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6048 FND_MSG_PUB.ADD;
6049 RAISE FND_API.G_EXC_ERROR;
6050 END IF;
6051 HZ_MATCH_RULE_41.get_party_for_search(
6052 p_party_id, x_party_search_rec,x_party_site_list,
6053 x_contact_list, x_contact_point_list);
6054 -- Code for Match rule SAMPLE: SEARCH EXACT
6055 ELSIF p_rule_id=42 THEN
6056 IF NOT HZ_MATCH_RULE_42.check_staged THEN
6057 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6058 FND_MSG_PUB.ADD;
6059 RAISE FND_API.G_EXC_ERROR;
6060 END IF;
6061 HZ_MATCH_RULE_42.get_party_for_search(
6062 p_party_id, x_party_search_rec,x_party_site_list,
6063 x_contact_list, x_contact_point_list);
6064 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
6065 ELSIF p_rule_id=48 THEN
6066 IF NOT HZ_MATCH_RULE_48.check_staged THEN
6067 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6068 FND_MSG_PUB.ADD;
6069 RAISE FND_API.G_EXC_ERROR;
6070 END IF;
6071 HZ_MATCH_RULE_48.get_party_for_search(
6072 p_party_id, x_party_search_rec,x_party_site_list,
6073 x_contact_list, x_contact_point_list);
6074 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
6075 ELSIF p_rule_id=50 THEN
6076 IF NOT HZ_MATCH_RULE_50.check_staged THEN
6077 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6078 FND_MSG_PUB.ADD;
6079 RAISE FND_API.G_EXC_ERROR;
6080 END IF;
6081 HZ_MATCH_RULE_50.get_party_for_search(
6082 p_party_id, x_party_search_rec,x_party_site_list,
6083 x_contact_list, x_contact_point_list);
6084 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
6085 ELSIF p_rule_id=51 THEN
6086 IF NOT HZ_MATCH_RULE_51.check_staged THEN
6087 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6088 FND_MSG_PUB.ADD;
6089 RAISE FND_API.G_EXC_ERROR;
6090 END IF;
6091 HZ_MATCH_RULE_51.get_party_for_search(
6092 p_party_id, x_party_search_rec,x_party_site_list,
6093 x_contact_list, x_contact_point_list);
6094 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
6095 ELSIF p_rule_id=52 THEN
6096 IF NOT HZ_MATCH_RULE_52.check_staged THEN
6097 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6098 FND_MSG_PUB.ADD;
6099 RAISE FND_API.G_EXC_ERROR;
6100 END IF;
6101 HZ_MATCH_RULE_52.get_party_for_search(
6102 p_party_id, x_party_search_rec,x_party_site_list,
6103 x_contact_list, x_contact_point_list);
6104 -- Code for Match rule CREDIT MANAGEMENT SEARCH
6105 ELSIF p_rule_id=53 THEN
6106 IF NOT HZ_MATCH_RULE_53.check_staged THEN
6107 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6108 FND_MSG_PUB.ADD;
6109 RAISE FND_API.G_EXC_ERROR;
6110 END IF;
6111 HZ_MATCH_RULE_53.get_party_for_search(
6112 p_party_id, x_party_search_rec,x_party_site_list,
6113 x_contact_list, x_contact_point_list);
6114 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
6115 ELSIF p_rule_id=58 THEN
6116 IF NOT HZ_MATCH_RULE_58.check_staged THEN
6117 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6118 FND_MSG_PUB.ADD;
6119 RAISE FND_API.G_EXC_ERROR;
6120 END IF;
6121 HZ_MATCH_RULE_58.get_party_for_search(
6122 p_party_id, x_party_search_rec,x_party_site_list,
6123 x_contact_list, x_contact_point_list);
6124 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
6125 ELSIF p_rule_id=60 THEN
6126 IF NOT HZ_MATCH_RULE_60.check_staged THEN
6127 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6128 FND_MSG_PUB.ADD;
6129 RAISE FND_API.G_EXC_ERROR;
6130 END IF;
6131 HZ_MATCH_RULE_60.get_party_for_search(
6132 p_party_id, x_party_search_rec,x_party_site_list,
6133 x_contact_list, x_contact_point_list);
6134 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
6135 ELSIF p_rule_id=61 THEN
6136 IF NOT HZ_MATCH_RULE_61.check_staged THEN
6137 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6138 FND_MSG_PUB.ADD;
6139 RAISE FND_API.G_EXC_ERROR;
6140 END IF;
6141 HZ_MATCH_RULE_61.get_party_for_search(
6142 p_party_id, x_party_search_rec,x_party_site_list,
6143 x_contact_list, x_contact_point_list);
6144 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
6145 ELSIF p_rule_id=62 THEN
6146 IF NOT HZ_MATCH_RULE_62.check_staged THEN
6147 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6148 FND_MSG_PUB.ADD;
6149 RAISE FND_API.G_EXC_ERROR;
6150 END IF;
6151 HZ_MATCH_RULE_62.get_party_for_search(
6152 p_party_id, x_party_search_rec,x_party_site_list,
6153 x_contact_list, x_contact_point_list);
6154 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
6155 ELSIF p_rule_id=98 THEN
6156 IF NOT HZ_MATCH_RULE_98.check_staged THEN
6157 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6158 FND_MSG_PUB.ADD;
6159 RAISE FND_API.G_EXC_ERROR;
6160 END IF;
6161 HZ_MATCH_RULE_98.get_party_for_search(
6162 p_party_id, x_party_search_rec,x_party_site_list,
6163 x_contact_list, x_contact_point_list);
6164 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
6165 ELSIF p_rule_id=99 THEN
6166 IF NOT HZ_MATCH_RULE_99.check_staged THEN
6167 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6168 FND_MSG_PUB.ADD;
6169 RAISE FND_API.G_EXC_ERROR;
6170 END IF;
6171 HZ_MATCH_RULE_99.get_party_for_search(
6172 p_party_id, x_party_search_rec,x_party_site_list,
6173 x_contact_list, x_contact_point_list);
6174 END IF;
6175 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6176 hz_utility_v2pub.debug(p_message=>'get_party_for_search(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
6177 END IF;
6178 --Standard call to get message count and if count is 1, get message info
6179 FND_MSG_PUB.Count_And_Get(
6180 p_encoded => FND_API.G_FALSE,
6181 p_count => x_msg_count,
6182 p_data => x_msg_data);
6183 EXCEPTION
6184 WHEN FND_API.G_EXC_ERROR THEN
6185 x_return_status := FND_API.G_RET_STS_ERROR;
6186 FND_MSG_PUB.Count_And_Get(
6187 p_encoded => FND_API.G_FALSE,
6188 p_count => x_msg_count,
6189 p_data => x_msg_data);
6190 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6191 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6192 FND_MSG_PUB.Count_And_Get(
6193 p_encoded => FND_API.G_FALSE,
6194 p_count => x_msg_count,
6195 p_data => x_msg_data);
6196
6197 WHEN OTHERS THEN
6198 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6199 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
6200 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
6201 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6202 FND_MSG_PUB.ADD;
6203
6204 FND_MSG_PUB.Count_And_Get(
6205 p_encoded => FND_API.G_FALSE,
6206 p_count => x_msg_count,
6207 p_data => x_msg_data);
6208 END;
6209 PROCEDURE get_search_criteria (
6210 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
6211 p_rule_id IN NUMBER,
6212 p_party_id IN NUMBER,
6213 p_party_site_ids IN IDList,
6214 p_contact_ids IN IDList,
6215 p_contact_pt_ids IN IDList,
6216 x_party_search_rec OUT NOCOPY party_search_rec_type,
6217 x_party_site_list OUT NOCOPY party_site_list,
6218 x_contact_list OUT NOCOPY contact_list,
6219 x_contact_point_list OUT NOCOPY contact_point_list,
6220 x_return_status OUT VARCHAR2,
6221 x_msg_count OUT NUMBER,
6222 x_msg_data OUT VARCHAR2
6223 ) IS
6224 CURSOR c_match_rule IS
6225 SELECT COMPILATION_FLAG
6226 FROM HZ_MATCH_RULES_VL
6227 WHERE MATCH_RULE_ID = p_rule_id;
6228 l_cmp_flag VARCHAR2(1);
6229 BEGIN
6230 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6231 hz_utility_v2pub.debug(p_message=>'get_search_criteria(+) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
6232 END IF;
6233 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
6234 hz_utility_v2pub.debug(p_message=>'Rule ID '||p_rule_id,p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_statement);
6235 END IF;
6236
6237 -- Initialize return status and message stack
6238 x_return_status := FND_API.G_RET_STS_SUCCESS;
6239 IF FND_API.to_Boolean(p_init_msg_list) THEN
6240 FND_MSG_PUB.initialize;
6241 END IF;
6242
6243 IF p_rule_id IS NULL OR p_rule_id = 0 THEN
6244 -- No MATCH RULE FOUND
6245 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MATCH_RULE');
6246 FND_MSG_PUB.ADD;
6247 RAISE FND_API.G_EXC_ERROR;
6248 END IF;
6249 OPEN c_match_rule;
6250 FETCH c_match_rule INTO l_cmp_flag;
6251 IF c_match_rule%NOTFOUND OR l_cmp_flag <> 'C' THEN
6252 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MATCH_RULE');
6253 FND_MSG_PUB.ADD;
6254 RAISE FND_API.G_EXC_ERROR;
6255 END IF;
6256 -- Code for Match rule SAMPLE: ORGANIZATIONS_OPTIMIZED
6257 IF p_rule_id=2 THEN
6258 IF NOT HZ_MATCH_RULE_2.check_staged THEN
6259 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6260 FND_MSG_PUB.ADD;
6261 RAISE FND_API.G_EXC_ERROR;
6262 END IF;
6263 HZ_MATCH_RULE_2.get_search_criteria(
6264 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6265 x_contact_list, x_contact_point_list);
6266 -- Code for Match rule SAMPLE: PERSON_OPTIMIZED
6267 ELSIF p_rule_id=3 THEN
6268 IF NOT HZ_MATCH_RULE_3.check_staged THEN
6269 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6270 FND_MSG_PUB.ADD;
6271 RAISE FND_API.G_EXC_ERROR;
6272 END IF;
6273 HZ_MATCH_RULE_3.get_search_criteria(
6274 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6275 x_contact_list, x_contact_point_list);
6276 -- Code for Match rule SAMPLE: ADDRESS_ORGANIZATIONS
6277 ELSIF p_rule_id=4 THEN
6278 IF NOT HZ_MATCH_RULE_4.check_staged THEN
6279 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6280 FND_MSG_PUB.ADD;
6281 RAISE FND_API.G_EXC_ERROR;
6282 END IF;
6283 HZ_MATCH_RULE_4.get_search_criteria(
6284 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6285 x_contact_list, x_contact_point_list);
6286 -- Code for Match rule SAMPLE: ADDRESS_PERSONS
6287 ELSIF p_rule_id=5 THEN
6288 IF NOT HZ_MATCH_RULE_5.check_staged THEN
6289 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6290 FND_MSG_PUB.ADD;
6291 RAISE FND_API.G_EXC_ERROR;
6292 END IF;
6293 HZ_MATCH_RULE_5.get_search_criteria(
6294 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6295 x_contact_list, x_contact_point_list);
6296 -- Code for Match rule SAMPLE: SIMILAR_ORGANIZATION
6297 ELSIF p_rule_id=6 THEN
6298 IF NOT HZ_MATCH_RULE_6.check_staged THEN
6299 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6300 FND_MSG_PUB.ADD;
6301 RAISE FND_API.G_EXC_ERROR;
6302 END IF;
6303 HZ_MATCH_RULE_6.get_search_criteria(
6304 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6305 x_contact_list, x_contact_point_list);
6306 -- Code for Match rule SAMPLE: SIMILAR_PERSON
6307 ELSIF p_rule_id=7 THEN
6308 IF NOT HZ_MATCH_RULE_7.check_staged THEN
6309 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6310 FND_MSG_PUB.ADD;
6311 RAISE FND_API.G_EXC_ERROR;
6312 END IF;
6313 HZ_MATCH_RULE_7.get_search_criteria(
6314 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6315 x_contact_list, x_contact_point_list);
6316 -- Code for Match rule SAMPLE: SEARCH
6317 ELSIF p_rule_id=8 THEN
6318 IF NOT HZ_MATCH_RULE_8.check_staged THEN
6319 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6320 FND_MSG_PUB.ADD;
6321 RAISE FND_API.G_EXC_ERROR;
6322 END IF;
6323 HZ_MATCH_RULE_8.get_search_criteria(
6324 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6325 x_contact_list, x_contact_point_list);
6326 -- Code for Match rule RM SEARCH RULE
6327 ELSIF p_rule_id=32 THEN
6328 IF NOT HZ_MATCH_RULE_32.check_staged THEN
6329 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6330 FND_MSG_PUB.ADD;
6331 RAISE FND_API.G_EXC_ERROR;
6332 END IF;
6333 HZ_MATCH_RULE_32.get_search_criteria(
6334 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6335 x_contact_list, x_contact_point_list);
6336 -- Code for Match rule SAMPLE:BASIC SEARCH RULE
6337 ELSIF p_rule_id=33 THEN
6338 IF NOT HZ_MATCH_RULE_33.check_staged THEN
6339 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6340 FND_MSG_PUB.ADD;
6341 RAISE FND_API.G_EXC_ERROR;
6342 END IF;
6343 HZ_MATCH_RULE_33.get_search_criteria(
6344 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6345 x_contact_list, x_contact_point_list);
6346 -- Code for Match rule SAMPLE:ADVANCED SEARCH RULE
6347 ELSIF p_rule_id=34 THEN
6348 IF NOT HZ_MATCH_RULE_34.check_staged THEN
6349 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6350 FND_MSG_PUB.ADD;
6351 RAISE FND_API.G_EXC_ERROR;
6352 END IF;
6353 HZ_MATCH_RULE_34.get_search_criteria(
6354 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6355 x_contact_list, x_contact_point_list);
6356 -- Code for Match rule DL SMART SEARCH
6357 ELSIF p_rule_id=35 THEN
6358 IF NOT HZ_MATCH_RULE_35.check_staged THEN
6359 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6360 FND_MSG_PUB.ADD;
6361 RAISE FND_API.G_EXC_ERROR;
6362 END IF;
6363 HZ_MATCH_RULE_35.get_search_criteria(
6364 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6365 x_contact_list, x_contact_point_list);
6366 -- Code for Match rule DL ADDRESS AND RELATIONSHIP SEARCH
6367 ELSIF p_rule_id=36 THEN
6368 IF NOT HZ_MATCH_RULE_36.check_staged THEN
6369 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6370 FND_MSG_PUB.ADD;
6371 RAISE FND_API.G_EXC_ERROR;
6372 END IF;
6373 HZ_MATCH_RULE_36.get_search_criteria(
6374 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6375 x_contact_list, x_contact_point_list);
6376 -- Code for Match rule DL ADDRESS DEFAULT
6377 ELSIF p_rule_id=37 THEN
6378 IF NOT HZ_MATCH_RULE_37.check_staged THEN
6379 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6380 FND_MSG_PUB.ADD;
6381 RAISE FND_API.G_EXC_ERROR;
6382 END IF;
6383 HZ_MATCH_RULE_37.get_search_criteria(
6384 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6385 x_contact_list, x_contact_point_list);
6386 -- Code for Match rule DL RELATIONSHIP DEFAULT
6387 ELSIF p_rule_id=38 THEN
6388 IF NOT HZ_MATCH_RULE_38.check_staged THEN
6389 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6390 FND_MSG_PUB.ADD;
6391 RAISE FND_API.G_EXC_ERROR;
6392 END IF;
6393 HZ_MATCH_RULE_38.get_search_criteria(
6394 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6395 x_contact_list, x_contact_point_list);
6396 -- Code for Match rule SAMPLE: SEARCH ADDRESS ORGANIZATIONS EXACT
6397 ELSIF p_rule_id=39 THEN
6398 IF NOT HZ_MATCH_RULE_39.check_staged THEN
6399 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6400 FND_MSG_PUB.ADD;
6401 RAISE FND_API.G_EXC_ERROR;
6402 END IF;
6403 HZ_MATCH_RULE_39.get_search_criteria(
6404 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6405 x_contact_list, x_contact_point_list);
6406 -- Code for Match rule SAMPLE: SEARCH SIMILAR ORGANIZATION EXACT
6407 ELSIF p_rule_id=40 THEN
6408 IF NOT HZ_MATCH_RULE_40.check_staged THEN
6409 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6410 FND_MSG_PUB.ADD;
6411 RAISE FND_API.G_EXC_ERROR;
6412 END IF;
6413 HZ_MATCH_RULE_40.get_search_criteria(
6414 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6415 x_contact_list, x_contact_point_list);
6416 -- Code for Match rule SAMPLE: SEARCH SIMILAR PERSON EXACT
6417 ELSIF p_rule_id=41 THEN
6418 IF NOT HZ_MATCH_RULE_41.check_staged THEN
6419 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6420 FND_MSG_PUB.ADD;
6421 RAISE FND_API.G_EXC_ERROR;
6422 END IF;
6423 HZ_MATCH_RULE_41.get_search_criteria(
6424 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6425 x_contact_list, x_contact_point_list);
6426 -- Code for Match rule SAMPLE: SEARCH EXACT
6427 ELSIF p_rule_id=42 THEN
6428 IF NOT HZ_MATCH_RULE_42.check_staged THEN
6429 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6430 FND_MSG_PUB.ADD;
6431 RAISE FND_API.G_EXC_ERROR;
6432 END IF;
6433 HZ_MATCH_RULE_42.get_search_criteria(
6434 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6435 x_contact_list, x_contact_point_list);
6436 -- Code for Match rule DL SYSTEM DUPLICATE IDENTIFICATION
6437 ELSIF p_rule_id=48 THEN
6438 IF NOT HZ_MATCH_RULE_48.check_staged THEN
6439 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6440 FND_MSG_PUB.ADD;
6441 RAISE FND_API.G_EXC_ERROR;
6442 END IF;
6443 HZ_MATCH_RULE_48.get_search_criteria(
6444 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6445 x_contact_list, x_contact_point_list);
6446 -- Code for Match rule BULK MATCH: IDENTICAL ORGANIZATIONS
6447 ELSIF p_rule_id=50 THEN
6448 IF NOT HZ_MATCH_RULE_50.check_staged THEN
6449 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6450 FND_MSG_PUB.ADD;
6451 RAISE FND_API.G_EXC_ERROR;
6452 END IF;
6453 HZ_MATCH_RULE_50.get_search_criteria(
6454 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6455 x_contact_list, x_contact_point_list);
6456 -- Code for Match rule BULK MATCH: IDENTICAL PERSONS
6457 ELSIF p_rule_id=51 THEN
6458 IF NOT HZ_MATCH_RULE_51.check_staged THEN
6459 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6460 FND_MSG_PUB.ADD;
6461 RAISE FND_API.G_EXC_ERROR;
6462 END IF;
6463 HZ_MATCH_RULE_51.get_search_criteria(
6464 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6465 x_contact_list, x_contact_point_list);
6466 -- Code for Match rule BULK MATCH: IDENTICAL PARTIES
6467 ELSIF p_rule_id=52 THEN
6468 IF NOT HZ_MATCH_RULE_52.check_staged THEN
6469 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6470 FND_MSG_PUB.ADD;
6471 RAISE FND_API.G_EXC_ERROR;
6472 END IF;
6473 HZ_MATCH_RULE_52.get_search_criteria(
6474 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6475 x_contact_list, x_contact_point_list);
6476 -- Code for Match rule CREDIT MANAGEMENT SEARCH
6477 ELSIF p_rule_id=53 THEN
6478 IF NOT HZ_MATCH_RULE_53.check_staged THEN
6479 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6480 FND_MSG_PUB.ADD;
6481 RAISE FND_API.G_EXC_ERROR;
6482 END IF;
6483 HZ_MATCH_RULE_53.get_search_criteria(
6484 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6485 x_contact_list, x_contact_point_list);
6486 -- Code for Match rule HZ_PERSON_SIMPLE_SEARCH_RULE
6487 ELSIF p_rule_id=58 THEN
6488 IF NOT HZ_MATCH_RULE_58.check_staged THEN
6489 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6490 FND_MSG_PUB.ADD;
6491 RAISE FND_API.G_EXC_ERROR;
6492 END IF;
6493 HZ_MATCH_RULE_58.get_search_criteria(
6494 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6495 x_contact_list, x_contact_point_list);
6496 -- Code for Match rule HZ_PERSON_ADVANCED_SEARCH_MATCH_RULE
6497 ELSIF p_rule_id=60 THEN
6498 IF NOT HZ_MATCH_RULE_60.check_staged THEN
6499 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6500 FND_MSG_PUB.ADD;
6501 RAISE FND_API.G_EXC_ERROR;
6502 END IF;
6503 HZ_MATCH_RULE_60.get_search_criteria(
6504 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6505 x_contact_list, x_contact_point_list);
6506 -- Code for Match rule HZ_ORG_SIMPLE_SEARCH_RULE
6507 ELSIF p_rule_id=61 THEN
6508 IF NOT HZ_MATCH_RULE_61.check_staged THEN
6509 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6510 FND_MSG_PUB.ADD;
6511 RAISE FND_API.G_EXC_ERROR;
6512 END IF;
6513 HZ_MATCH_RULE_61.get_search_criteria(
6514 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6515 x_contact_list, x_contact_point_list);
6516 -- Code for Match rule HZ_ORG_ADV_SEARCH_RULE
6517 ELSIF p_rule_id=62 THEN
6518 IF NOT HZ_MATCH_RULE_62.check_staged THEN
6519 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6520 FND_MSG_PUB.ADD;
6521 RAISE FND_API.G_EXC_ERROR;
6522 END IF;
6523 HZ_MATCH_RULE_62.get_search_criteria(
6524 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6525 x_contact_list, x_contact_point_list);
6526 -- Code for Match rule HZ_CONTACT_SIMPLE_SEARCH_RULE
6527 ELSIF p_rule_id=98 THEN
6528 IF NOT HZ_MATCH_RULE_98.check_staged THEN
6529 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6530 FND_MSG_PUB.ADD;
6531 RAISE FND_API.G_EXC_ERROR;
6532 END IF;
6533 HZ_MATCH_RULE_98.get_search_criteria(
6534 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6535 x_contact_list, x_contact_point_list);
6536 -- Code for Match rule HZ_CONTACT_ADV_SEARCH_MATCH_RULE
6537 ELSIF p_rule_id=99 THEN
6538 IF NOT HZ_MATCH_RULE_99.check_staged THEN
6539 FND_MESSAGE.SET_NAME('AR', 'HZ_MATCH_RULE_TX_NOT_STAGED');
6540 FND_MSG_PUB.ADD;
6541 RAISE FND_API.G_EXC_ERROR;
6542 END IF;
6543 HZ_MATCH_RULE_99.get_search_criteria(
6544 p_party_id, p_party_site_ids, p_contact_ids, p_contact_pt_ids, x_party_search_rec,x_party_site_list,
6545 x_contact_list, x_contact_point_list);
6546 END IF;
6547 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
6548 hz_utility_v2pub.debug(p_message=>'get_search_criteria(-) ',p_module_prefix=>'dqm',p_module=>'hz_match_rule_xxx',p_prefix=>NULL,p_msg_level=>fnd_log.level_procedure);
6549 END IF;
6550 --Standard call to get message count and if count is 1, get message info
6551 FND_MSG_PUB.Count_And_Get(
6552 p_encoded => FND_API.G_FALSE,
6553 p_count => x_msg_count,
6554 p_data => x_msg_data);
6555 EXCEPTION
6556 WHEN FND_API.G_EXC_ERROR THEN
6557 x_return_status := FND_API.G_RET_STS_ERROR;
6558 FND_MSG_PUB.Count_And_Get(
6559 p_encoded => FND_API.G_FALSE,
6560 p_count => x_msg_count,
6561 p_data => x_msg_data);
6562 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6563 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6564 FND_MSG_PUB.Count_And_Get(
6565 p_encoded => FND_API.G_FALSE,
6566 p_count => x_msg_count,
6567 p_data => x_msg_data);
6568
6569 WHEN OTHERS THEN
6570 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6571 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_API_ERROR');
6572 FND_MESSAGE.SET_TOKEN('PROC' ,'HZ_PARTY_SEARCH');
6573 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6574 FND_MSG_PUB.ADD;
6575
6576 FND_MSG_PUB.Count_And_Get(
6577 p_encoded => FND_API.G_FALSE,
6578 p_count => x_msg_count,
6579 p_data => x_msg_data);
6580 END;
6581 END;